久久r热视频,国产午夜精品一区二区三区视频,亚洲精品自拍偷拍,欧美日韩精品二区

您的位置:首頁技術文章
文章詳情頁

分享一個python的aes加密代碼

瀏覽:3日期:2022-07-01 14:21:26

高級加密標準(英語:Advanced Encryption Standard,縮寫:AES),在密碼學中又稱Rijndael加密法,是美國聯邦政府采用的一種區塊加密標準。這個標準用來替代原先的DES,已經被多方分析且廣為全世界所使用。經過五年的甄選流程,高級加密標準由美國國家標準與技術研究院(NIST)于2001年11月26日發布于FIPS PUB 197,并在2002年5月26日成為有效的標準。2006年,高級加密標準已然成為對稱密鑰加密中最流行的算法之一。---百度百科

本科的時候弄過DES加密算法加密計算機文件,而DES加密算法現在基本處于被廢棄的狀態,所以現在想試試更高級一點的。

DES加密算法可發展為3DES加密算法,后來又被升級為AES加密算法,加長了密鑰長度,也就增加了暴力破解的難度。

本次使用Python進行AES的加密解密

import hashlibfrom Crypto.Cipher import AESimport base64class prpcrypt(): def __init__(self,key): self.key = key # 因為在python3中AES傳入參數的參數類型存在問題,需要更換為 bytearray , 所以使用encode編碼格式將其轉為字節格式(linux系統可不用指定編碼) IV = 16 * ’x00’ self.iv=IV.encode('utf-8') self.mode = AES.MODE_CBC self.BS = AES.block_size self.pad = lambda s: s + (self.BS - len(s) % self.BS) * chr(self.BS - len(s) % self.BS) self.unpad = lambda s: s[0:-ord(s[-1])] # 加密 def encrypt(self, text): text = self.pad(text).encode('utf-8') cryptor = AES.new(self.key, self.mode, self.iv) # 目前AES-128 足夠目前使用(CBC加密) ciphertext = cryptor.encrypt(text) # base64加密 return base64.b64encode(bytes(ciphertext)) # 解密 def decrypt(self, text): # base64解密 text = base64.b64decode(text) cryptor = AES.new(self.key, self.mode, self.iv) # CBC解密 plain_text = cryptor.decrypt(text) # 去掉補足的空格用strip() 去掉 return self.unpad(bytes.decode(plain_text).rstrip(’0’)) # 解密字節???def gen_binsha(data): shavalue = hashlib.sha256() shavalue.update(data) return shavalue.digest()if __name__ == ’__main__’: key=’78f40cecf89’ key=gen_binsha(key.encode(’utf-8’)) pc = prpcrypt(key=key) # 初始化密鑰 和 iv text=’qwerqwerkkk12345’ e = pc.encrypt(text) # 加密 d = pc.decrypt(e) # 解密 print('加密:%s' % e) print('解密:%s'% d) print('長度:%s'% len(d))

以上就是分享一個python的aes加密代碼的詳細內容,更多關于python的aes加密代碼的資料請關注好吧啦網其它相關文章!

標簽: Python 編程
相關文章:
主站蜘蛛池模板: 城市| 苏尼特右旗| 哈尔滨市| 岳西县| 沂源县| 毕节市| 襄樊市| 庄浪县| 水富县| 玉田县| 历史| 旬邑县| 高邑县| 英德市| 宁阳县| 泰安市| 云梦县| 德兴市| 辽阳市| 彭水| 乌什县| 东平县| 洪江市| 镇宁| 称多县| 五家渠市| 元阳县| 瑞昌市| 双鸭山市| 崇仁县| 靖安县| 南通市| 清流县| 永州市| 英吉沙县| 大埔区| 衡东县| 萝北县| 永昌县| 农安县| 淮阳县|