一、加密算法的分类
1、可逆加密算法
可逆算法是密码通过加密后生成的密文可以通过计算转换回明文。
可逆算法根据两端是否使用同一个秘钥分为:
1)对称加密(DES算法)
2)不对称加密(RSA算法)
2、不可逆加密算法
将明文处理成密文后,无法再由密文转换为明文。
例如:
md5算法
shal256算法
二、hashlib库
1、使用md5加密算法
hashlib.md5()只能接收字节数据。
md5 = hashlib.md5("123456".encode("utf-8"))
md5.hexdigest()
2、盐值混淆
因为相同的数据使用hash算法的到的密文是相同的,容易被碰撞破解,使用盐值混淆加密前数据中加入其他的字符串可以增加加密的安全性。
md5 = hashlib.md5("123456".encode("utf-8"))
md5.update("@#$$%123456".encode("utf-8"))
md5.hexdigest()
三、hmac库
使用对称加密,适合对密码加密。
在使用hmac时必须使用盐值混淆
hmac.new("123456".encode("utf-8"),"!@#$%#".encode("utf-8"),"MD5")
#先将明文123456以!@#$%#为盐值进行对称加密,将得到的值以!@#$%#为盐值又进行一次盐值加密