几种对称性加密算法:AES,DES,3DES
DES是一种高速的分组数据加密技术,它将数据分成固定长度的小数据块,然后对每个数据块进行加密。 3DES是基于DES的加密算法,通过对同一个数据块进行三次加密,使用不同的密钥,提高了密文的强度。这种加密算法适用于需要加密大量数据的场景,因为它的速度较快。
相对于DES和3DES算法,AES算法具有更高的速度和资源效率,同时也提供了更高的安全级别,因此被广泛认可为下一代加密标准。
几种非对称性加密算法:RSA,DSA,ECC
RSA和DSA的安全性和性能相似,而ECC在处理速度、带宽、存储空间等方面具有显着优势。
几种线性散列算法(签名算法):MD5,SHA1,HMAC
这几种算法只生成一串不可逆的密文,用于验证数据传输过程中是否经过修改。由于相同的生成算法对于同一明文只会生成唯一的密文,若相同算法生成的密文不同,则证明传输数据进行过了修改。通常在数据传输过程中,使用MD5和SHA1算法需要发送和接收数据双方在传输之前就知道密钥生成算法。与之不同的是,HMAC算法需要生成一个密钥,发送方用此密钥对数据进行摘要处理(生成密文),接收方再利用此密钥对接收到的数据进行摘要处理,并判断生成的密文是否相同。因此,HMAC算法提供了更高的安全性和保密性。
对于各种加密算法的选用:
由于对称加密算法的密钥管理复杂,密钥的管理直接决定安全性。因此,对于小数据量,可考虑使用非对称加密算法。
在实际的操作过程中,通常采用的方式是使用非对称加密算法来管理对称算法的密钥,并使用对称加密算法来加密数据。这样的做法融合了两类加密算法的优点,既能够实现较快的加密速度,又能够方便安全地管理密钥。
如果在选定了加密算法后,那采用多少位的密钥呢?一般来说,密钥越长,运行的速度就越慢,应该根据的我们实际需要的安全级别来选择,一般来说,RSA建议采用1024位的数字,ECC建议采用160位,AES采用128为即可。
1. MD5加密
string md5 ( string $str [, bool $raw_output = false ] )
2. Crype加密
string crypt ( string $str [, string $salt ] )
crypt() 返回一个基于标准 UNIX DES 算法或系统上其他可用的替代算法的散列字符串。
3. Sha1加密
string sha1 ( string $str [, bool $raw_output = false ] )
4. url加密
string urlencode ( string $str )
5. base64
string base64_encode ( string $data )
以上是比较常见的数据加密算法有哪些?的详细内容。更多信息请关注PHP中文网其他相关文章!