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))
View Code

 

posted @ 2017-08-28 14:02  lichenxi  阅读(193)  评论(0编辑  收藏  举报