Python学习笔记——基础篇第六周——hashlib模块

Posted Yared

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python学习笔记——基础篇第六周——hashlib模块相关的知识,希望对你有一定的参考价值。

常用模块之hashlib模块 

用于加密相关的操作,3.x里代替了md5模块和sha模块,主要提供 SHA1, SHA224, SHA256, SHA384, SHA512 ,MD5 算法

import md5
hash = md5.new()
hash.update(\'admin\')
print hash.hexdigest()
MD5-废弃
import sha

hash = sha.new()
hash.update(\'admin\')
print hash.hexdigest()
sha-废弃
import hashlib
 
# ######## md5 ########
 
hash = hashlib.md5()
hash.update(\'admin\')
print hash.hexdigest()
 
# ######## sha1 ########
 
hash = hashlib.sha1()
hash.update(\'admin\')
print hash.hexdigest()
 
# ######## sha256 ########
 
hash = hashlib.sha256()
hash.update(\'admin\')
print hash.hexdigest()
 
 
# ######## sha384 ########
 
hash = hashlib.sha384()
hash.update(\'admin\')
print hash.hexdigest()
 
# ######## sha512 ########
 
hash = hashlib.sha512()
hash.update(\'admin\')
print hash.hexdigest()

 以上加密算法虽然依然非常厉害,但时候存在缺陷,即:通过撞库可以反解。所以,有必要对加密算法中添加自定义key再来做加密。

import hashlib
 
# ######## md5 ########
 
hash = hashlib.md5(\'898oaFs09f\')
hash.update(\'admin\')
print hash.hexdigest()

 还不够吊?python 还有一个 hmac 模块,它内部对我们创建 key 和 内容 再进行处理然后再加密

import hmac
h = hmac.new(\'wueiqi\')
h.update(\'hellowo\')
print h.hexdigest()

 不能再牛逼了!!!

 

 1 import hashlib
 2  
 3 m = hashlib.md5()
 4 m.update(b"Hello")
 5 m.update(b"It\'s me")
 6 print(m.digest())
 7 m.update(b"It\'s been a long time since last time we ...")
 8  
 9 print(m.digest()) #2进制格式hash
10 print(len(m.hexdigest())) #16进制格式hash
11 \'\'\'
12 def digest(self, *args, **kwargs): # real signature unknown
13     """ Return the digest value as a string of binary data. """
14     pass
15  
16 def hexdigest(self, *args, **kwargs): # real signature unknown
17     """ Return the digest value as a string of hexadecimal digits. """
18     pass
19  
20 \'\'\'
21 import hashlib
22  
23 # ######## md5 ########
24  
25 hash = hashlib.md5()
26 hash.update(\'admin\')
27 print(hash.hexdigest())
28  
29 # ######## sha1 ########
30  
31 hash = hashlib.sha1()
32 hash.update(\'admin\')
33 print(hash.hexdigest())
34  
35 # ######## sha256 ########
36  
37 hash = hashlib.sha256()
38 hash.update(\'admin\')
39 print(hash.hexdigest())
40  
41  
42 # ######## sha384 ########
43  
44 hash = hashlib.sha384()
45 hash.update(\'admin\')
46 print(hash.hexdigest())
47  
48 # ######## sha512 ########
49  
50 hash = hashlib.sha512()
51 hash.update(\'admin\')
52 print(hash.hexdigest())
View Code

更多关于md5,sha1,sha256等介绍的文章看这里https://www.tbs-certificates.co.uk/FAQ/en/sha256.html

 

以上是关于Python学习笔记——基础篇第六周——hashlib模块的主要内容,如果未能解决你的问题,请参考以下文章

Python学习笔记——基础篇第六周——Subprocess模块

Python学习笔记——基础篇第六周——面向对象

Python学习笔记——基础篇第六周——hashlib模块

Python学习笔记——基础篇第六周——模块

Python学习笔记——基础篇第六周——PyYAML & configparser模块

Python学习笔记第六周