首页 > 代码库 > python---hashlib
python---hashlib
简介
用于加密相关的操作,代替了md5模块和sha模块,主要提供SHA1,SHA224,SHA256,SHA384,SHA512,MD5算法。
在python3中已经废弃了md5和sha模块,简单说明下md5和sha的使用。
什么是摘要算法呢?
摘要算法又称为哈希算法,散列算法。它通过一个函数,把任意长度的数据转换为一个长度固顶的数据串(通常用16进制的字符串表示)用于加密相关的操作。
md5加密
1 hash = hashlib.md5()2 hash.update(‘admin‘.encode(‘utf-8‘))3 print(hash.hexdigest())4 21232f297a57a5a743894a0e4a801fc3
sha1加密
1 hash = hashlib.sha1()2 hash.update(‘admin‘.encode(‘utf-8‘))3 print(hash.hexdigest())4 d033e22ae348aeb5660fc2140aec35850c4da997
sha256加密
1 hash = hashlib.sha256()2 hash.update(‘admin‘.encode(‘utf-8‘))3 print(hash.hexdigest())4 8c6976e5b5410415bde908bd4dee15dfb167a9c873fc4bb8a81f6f2ab448a918
sha384加密
1 hash = hashlib.sha384()2 hash.update(‘admin‘.encode(‘utf-8‘))3 print(hash.hexdigest())4 9ca694a90285c034432c9550421b7b9dbd5c0f4b6673f05f6dbce58052ba20e4248041956ee8c9a2ec9f10290cdc0782
sha512加密
1 hash = hashlib.sha512()2 hash.update(‘admin‘.encode(‘utf-8‘))3 print(hash.hexdigest())4 c7ad44cbad762a5da0a452f9e854fdc1e0e7a52a38015f23f3eab1d80b931dd472634dfac71cd34ebc35d16ab7fb8a90c81f975113d6c7538dc69dd8de9077ec
加点盐
以上加密算法虽然很厉害,但仍然存在缺陷,通过撞库可以反解。所以必要对加密算法中添加自定义key再来做加密。
1 ###### md5 加密 ############2 hash = hashlib.md5(‘python‘.encode(‘utf-8‘))3 hash.update(‘admin‘.encode(‘utf-8‘))4 print(hash.hexdigest())5 75b431c498b55557591f834af7856b9f
hmac加密
hmac内部对我们创建的key和内容进行处理后在加密
1 import hmac2 h = hmac.new(‘python‘.encode(‘utf-8‘))3 h.update(‘helloworld‘.encode(‘utf-8‘))4 print(h.hexdigest())5 b3b867248bb4cace835b59562c39fd55
获取文件的MD5
1 import hashlib 2 def md5sum(filename): 3 """ 4 用于获取文件的md5值 5 :param filename: 文件名 6 :return: MD5码 7 """ 8 if not os.path.isfile(filename): # 如果校验md5的文件不是文件,返回空 9 return10 myhash = hashlib.md5()11 f = open(filename, ‘rb‘)12 while True:13 b = f.read(8096)14 if not b:15 break16 myhash.update(b) 17 f.close()18 return myhash.hexdigest()
python---hashlib
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。