Python的hashlib提供了常见的摘要算法,如MD5,SHA1等等。摘要算法又称哈希算法、散列算法。它通过一个函数,把任意长度的数据转换为一个长度固定的数据串(通常用16进制的字符串表示)。
import hashlib md5=hashlib.md5()#对选择摘要算法的MD5类进行实例化,得到MD5对象 #md5.update("中文".encode("utf-8")) #这里要把文字转成二进制, md5.update(b"12alex") #这里要用二进制形式,在字母数字前面加b就变成了bytes类型, print(md5.hexdigest())
#为了使密码加密后更加安全,可以用加盐的方法
import hashlib md5=hashlib.md5(b"niani")#在MD5的括号里输入二进制,就是加盐
b="12alex"
md5.update(b"12alex") #这步等于md5.update(b.encode("utf-8)) print(md5.hexdigest())#结果又变成了字符串类型
单独的加盐还是不是很安全,这里最好设计一个动态的加盐,如这个盐为,用户名+字符串+密码
MD5:是最常见的摘要算法,速度很快,生成结果是固定的128 bit字节,通常用一个32位的16进制字符串表示。
SHA1:调用SHA1和调用MD5完全类似,SHA1的结果是160 bit字节,通常用一个40位的16进制字符串表示。不过越安全的算法越慢,而且摘要长度更长。