1.加密算法分类
2.hashlib库
1.MD5加密:全称MD5消息摘要算法
最主要的一种加密方式,使用广泛
python代码举例:
>>> import hashlib
>>> m = hashlib.md5("123456".encode("utf-8"))
>>> m
<md5 _hashlib.HASH object @ 0x000001ED53875B30>
>>> m.hexdigest()
'e10adc3949ba59abbe56e057f20f883e'
注意:要加入.encode("utf-8")将字符转变为字节数据,否则就会报错
要查看加密后的数字123456,则需要调用hexdigest方法
2.那么如何去破解这个密码?
最简单的方法就是可以用这个网站:https://cmd5.com/
只需要将密文输入就可以进行查询,但并不能解密所有密文,即越难的密文越难破解
3.如何使密文更难被破解?
可以使用盐值混淆
我们对前面的123456使用盐值混淆
调用update方法,在后面加入复杂的字符
用法示例:
>>> m.update("*&$#".encode("utf-8"))
>>> m.hexdigest()
'2723781bcf1c61397bf000e4057aa9ad'
最后得到的密文就较为复杂,难以破解,盐值越复杂,则越安全。
3.hmac
hmac加密全称:散列消息鉴别码
用到的是对称加密,也是哈希加密库
参数:第一个参数是要加密的字符串,第二个参数是盐值,第三个参数是加密算法
用法示例:
>>> import hmac
>>> m = hmac.new("123456".encode("utf-8"),"*&hihi".encode("utf-8"),hashlib.md5)
>>> m.hexdigest()
'28bb7a98a2008101fd7729c4f30e45e6'
加密原理:使用对称加密,密钥就是盐值,然后进行了一次MD5加密,使得更加安全