Python之hashlib
一. 简介 用于加密相关的操作,代替了md5模块盒sha模块, 主要提供SHA1,SHA224,SHA256,SHA384 SHA512,MD5 算法 |
import hashlib hashlib 模块常用的方法 update 加密 hexdigest 显示加密后的值
|
应用: |
1.md5加密
|
1 hash = hashlib.md5() #赋予一个变量 2 hash.update("/home/public/access.log") #对这个文件进行加密 3 print (hash.hexdigest()) # 打印出这个文件MD5加密后的值 4 'a419832302449ff1760ed0cd3ad31fb2'
2. sha512加密
|
1 hash1 = hashlib.sha512() 2 hash1.update("/home/public/access.log") 3 print(hash1.hexdigest()) 4 'a1241b83ff282e5e4581a246644b277610b84d79b87e6d5e799092ba5c8e7a2be7ba9d9f5a7eaab3ac647a2457e084a9c3bc78be687ab513bcd1bea42a45bb3d'
3. "加盐“加密 加密算法虽然很厉害,但乃然存在缺陷,通过撞库可以反解。所以必要对加密算法中添加自定义key 再来做加密
|
1 hash = hashlib.md5("python".encode("utf-8")) 2 hash.update("/home/public/access.log") 3 print(hash.hexdigest()) 4 'af957c033c82e44310596d90232d23b9'
4.获取文件的MD5值
|
1 #!/usr/bin/python 2 #_*_coding:utf-8_*_ 3 import hashlib,os 4 def md5_file(filename): 5 if not os.path.exists(filename): 6 return 7 md5 = hashlib.md5("python".encode("utf-8")) 8 with open(filename,"rb") as f: 9 while True: 10 data = f.read(1024) 11 if not data: 12 break 13 md5.update(data) 14 return md5.hexdigest() 15 if __name__ == "__main__": 16 filename = input("请输入要加密的文件:") 17 md5_file(filename) 18 print(md5_file(filename))