模塊講解----hashlib模塊(加密)

做用

用於加密相關的操做,代替了md5模塊和sha模塊,主要提供 SHA1, SHA224, SHA256, SHA384, SHA512 ,MD5 算法python

 語法

複製代碼

1 import hashlib
 2 
 3 #md5加密:
 4 obj = hashlib.md5()
 5 obj.update(bytes('123',encoding='utf-8'))
 6 result = obj.hexdigest()
 7 print(result)
 8 
 9 
10 #md5二次加密:
11 obj1 = hashlib.md5(bytes('MGFhMWJiNjQ2MTAMDMwMzlmNTM2ZjZ',encoding='utf-8'))
12 obj1.update(bytes('123',encoding='utf-8'))
13 result1 = obj1.hexdigest()
14 print(result1)
15 
16 
17 # ######## md5 ########
18 hash = hashlib.md5()
19 # help(hash.update)
20 hash.update(bytes('admin', encoding='utf-8'))
21 print(hash.hexdigest())
22 print(hash.digest())
23  
24  
25 ######## sha1 ########
26  
27 hash = hashlib.sha1()
28 hash.update(bytes('admin', encoding='utf-8'))
29 print(hash.hexdigest())
30  
31 # ######## sha256 ########
32  
33 hash = hashlib.sha256()
34 hash.update(bytes('admin', encoding='utf-8'))
35 print(hash.hexdigest())
36  
37  
38 # ######## sha384 ########
39  
40 hash = hashlib.sha384()
41 hash.update(bytes('admin', encoding='utf-8'))
42 print(hash.hexdigest())
43  
44 # ######## sha512 ########
45  
46 hash = hashlib.sha512()
47 hash.update(bytes('admin', encoding='utf-8'))
48 print(hash.hexdigest())
49 
50 注意:以上加密算法雖然依然很是厲害,但時候存在缺陷,即:經過撞庫能夠反解。因此,有必要對加密算法中添加自定義key再來作加密。
51 
52 import hashlib
53  
54 # ######## md5 ########
55  
56 hash = hashlib.md5(bytes('898oaFs09f',encoding="utf-8"))
57 hash.update(bytes('admin',encoding="utf-8"))
58 print(hash.hexdigest())
59 
60 python內置還有一個 hmac 模塊,它內部對咱們建立 key 和 內容 進行進一步的處理而後再加密:
61 
62 
63 
64 import hmac
65  
66 h = hmac.new(bytes('898oaFs09f',encoding="utf-8"))
67 h.update(bytes('admin',encoding="utf-8"))
68 print(h.hexdigest())
相關文章
相關標籤/搜索