您好,登錄后才能下訂單哦!
小編給大家分享一下python中實現加密的方法,相信大部分人都還不怎么了解,因此分享這邊文章給大家學習,希望大家閱讀完這篇文章后大所收獲,下面讓我們一起去學習方法吧!
1、Python中使用Base64加密:
Python內置的base64模塊可以直接進行base64的編解碼
注意:用于base64編碼的,要么是ASCII包含的字符,要么是二進制數據
# -*- coding:UTF-8 -*- __author__ = 'rxz' import base64 a = base64.b64encode(b"hello world") print(a) # b'aGVsbG8gd29ybGQ=' b = base64.b64decode(a) print(b) # b"hello world"
2、Python中使用MD5加密
由于MD5模塊在python3中被移除,在python3中使用hashlib模塊進行md5操作
# -*- coding:UTF-8 -*- __author__ = 'rxz' import hashlib # 待加密信息 str = '中國你好' # 創建md5對象, #md5對象,md5不能反解,但是加密是固定的,就是關系是一一對應,所以有缺陷,可以被對撞出來 hl = hashlib.md5() #要對哪個字符串進行加密,就放這里 # 此處必須聲明encode # 若寫法為hl.update(str) 報錯為: Unicode-objects must be encoded before hashing hl.update(str.encode(encoding='utf-8')) print('MD5加密前為 :' + str) #hl.hexdigest()) #拿到加密字符串 print('MD5加密后為 :' + hl.hexdigest()) """ MD5加密前為 :中國你好 MD5加密后為 :560a6b11a85d436acfa4bd7f34462f40 """ hash4 = hashlib.md5(bytes('abd',encoding='utf-8')) ''' 如果沒有參數,所以md5遵守一個規則,生成同一個對應關系,如果加了參數, 就是在原先加密的基礎上再加密一層,這樣的話參數只有自己知道,防止被撞庫, 因為別人永遠拿不到這個參數 ''' hash4 .update(bytes("admin",encoding = "utf-8")) print(hash4.hexdigest()) #9aea3c0a6c51555c1a4d0a5e9b689ded
3、使用hmac加密
python中還有一個hmac模塊,它對我們創建key和內容再進行處理然后再加密
該模塊加密是先把數據存儲到字典中,然后再進行加密,方法與上述方法類似。
import hmac hm = hmac.new(b'abc') hm = hmac.new('中國你好'.encode(encoding='utf-8'),b'bads') print(hm.digest()) print(hm.hexdigest()) """ b'\xc8;\x0c\x0b\xd42\xc37\xd0X\xbc\xfbf=RP' c83b0c0bd432c337d058bcfb663d5250 """
注:加密數據時一定要指定數據編碼格式。
4、使用sha1 加密
SHA1的全稱是Secure Hash Algorithm(安全哈希算法) 。SHA1基于MD5,加密后的數據長度更長,
它對長度小于264的輸入,產生長度為160bit的散列值。比MD5多32位。
因此,比MD5更加安全,但SHA1的運算速度就比MD5要慢了。
# -*- coding:UTF-8 -*- __author__ = 'rxz' import hashlib str = "中國你好" a = hashlib.sha1(str.encode("utf-8")).hexdigest() print("sha1加密前為 :",str) print("sha1加密前后 :",a) """ sha1加密前為 : 中國你好 sha1加密前后 : 3e6c570876775d0031dbf66247ed1054d4ef695e """
以上是python中實現加密的方法的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注億速云行業資訊頻道!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。