十种常见的密码加密方法

首先,密钥哈希

明文是使用MD5或SHA1等哈希算法加密的。严格来说,MD5不是加密算法,而是一种摘要算法。无论输入有多长,MD5都会输出一个128位(16字节)的哈希值。SHA1也是一种流行的消息摘要算法,它可以生成一个160位(20字节)的哈希值,称为消息摘要。与SHA1相比,MD5安全性较低,但速度更快。SHA1比MD5更安全,但速度较慢。

第二,对称加密

使用单密钥密码系统的加密方法,可以使用同一个密钥同时加密和解密信息。这种加密方法称为对称加密。常用的对称加密算法有DES、3DES、TDEA、河豚、RC2、RC4、RC5、IDEA、SKIPJACK等。

第三,不对称加密

非对称加密算法是一种密钥方法,需要两个密钥进行加密和解密。这两个密钥是公钥和私钥。公钥和私钥是一对。如果数据是用公钥加密的,则只能用相应的私钥解密。非对称加密算法包括RSA、Elgamal、背包算法、Rabin、D-H、ECC(椭圆曲线加密算法)。

第四,数字签名

数字签名(也称公钥数字签名)是只能由信息的发送者生成的数字串,他人无法伪造。这个数字串也是信息发送者发送信息真实性的有效证明。它是一种认证数字信息的方法,类似于写在纸上的普通物理签名,但利用公钥加密领域的技术实现。

五、直接明文保存

早期很多这样的做法,比如用户设置的密码是“123”,直接将“123”保存到数据库中,这是最简单的保存方式,也是最不安全的方式。但实际上很多互联网公司可能会采取这种方式。

6.使用MD5、SHA1等单向哈希算法保护密码。

使用这些算法后,无法通过计算恢复原密码,实现相对简单。所以很多互联网公司都用这种方式来保存用户的密码,这在以前是一种相对安全的方式。但是随着彩虹表技术的兴起,可以建立彩虹表来查表和破解表,目前来看是很不安全的。

七、特殊单向哈希算法

由于单向哈希算法在密码保护上已经不安全,一些公司通过加盐和多重哈希的方式对单向哈希算法进行了扩展,可以在一定程度上增加破解的难度。对于固定salt的hash算法,需要保护salt不被泄露,会遇到和“保护对称密钥”一样的问题。一旦盐漏了,可以根据盐重新搭建彩虹桌来破解。

八、PBKDF2

这种算法的原理大致相当于在哈希算法中加入随机盐,进行多次哈希运算。随机盐大大增加了构建彩虹表的难度,多重哈希也大大增加了构建和破解表的难度。

九。BCrypt

BCrypt诞生于1999,在对抗GPU/ASIC方面优于PBKDF2,但我还是不推荐你在新系统中使用,因为在离线破解线程建模方面并不突出。?

X.SCrypt

SCrypt是如今更好的选择:它比BCrypt设计得更好(尤其是在内存方面),并且已经在这个领域工作了10年。另一方面,在很多加密货币中也有使用,我们有一些硬件(包括FPGA和ASIC)来实现。虽然它们是专门用于采矿的,但可以重复用于裂解。