色综合图-色综合图片-色综合图片二区150p-色综合图区-玖玖国产精品视频-玖玖香蕉视频

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

Python實現AES加密,解密的兩種方法

瀏覽:6日期:2022-07-09 10:52:14

第一種

import base64from Crypto.Cipher import AES# 密鑰(key), 密斯偏移量(iv) CBC模式加密def AES_Encrypt(key, data): vi = ’0102030405060708’ pad = lambda s: s + (16 - len(s) % 16) * chr(16 - len(s) % 16) data = pad(data) # 字符串補位 cipher = AES.new(key.encode(’utf8’), AES.MODE_CBC, vi.encode(’utf8’)) encryptedbytes = cipher.encrypt(data.encode(’utf8’)) # 加密后得到的是bytes類型的數據 encodestrs = base64.b64encode(encryptedbytes) # 使用Base64進行編碼,返回byte字符串 enctext = encodestrs.decode(’utf8’) # 對byte字符串按utf-8進行解碼 return enctextdef AES_Decrypt(key, data): vi = ’0102030405060708’ data = data.encode(’utf8’) encodebytes = base64.decodebytes(data) # 將加密數據轉換位bytes類型數據 cipher = AES.new(key.encode(’utf8’), AES.MODE_CBC, vi.encode(’utf8’)) text_decrypted = cipher.decrypt(encodebytes) unpad = lambda s: s[0:-s[-1]] text_decrypted = unpad(text_decrypted) # 去補位 text_decrypted = text_decrypted.decode(’utf8’) return text_decryptedkey = ’0CoJUm6Qyw8W8jud’ #自己密鑰data = ’sdadsdsdsfd’ #需要加密的內容AES_Encrypt(key, data)enctext = AES_Encrypt(key, data)print(enctext)text_decrypted = AES_Decrypt(key, enctext)print(text_decrypted)

第二種

#!/usr/bin/env python#encoding=‘utf-8’from Crypto.Cipher import AESfrom binascii import b2a_hex, a2b_hexfrom Crypto import Randomclass PrpCrypt(object): def __init__(self, key): self.key = key.encode(’utf-8’) self.mode = AES.MODE_CBC self.iv = Random.new().read(AES.block_size) # 加密函數,如果text不足16位就用空格補足為16位, # 如果大于16當時不是16的倍數,那就補足為16的倍數。 def encrypt(self, text): text = text.encode(’utf-8’) cryptor = AES.new(self.key, self.mode,self.iv) # 這里密鑰key 長度必須為16(AES-128), # 24(AES-192),或者32 (AES-256)Bytes 長度 # 目前AES-128 足夠目前使用 length = 16 count = len(text) if count < length: add = (length - count) # 0 backspace # text = text + (’0’ * add) text = text + (’0’ * add).encode(’utf-8’) elif count > length: add = (length - (count % length)) # text = text + (’0’ * add) text = text + (’0’ * add).encode(’utf-8’) self.ciphertext = cryptor.encrypt(text) # 因為AES加密時候得到的字符串不一定是ascii字符集的,輸出到終端或者保存時候可能存在問題 # 所以這里統一把加密后的字符串轉化為16進制字符串 return b2a_hex(self.ciphertext) # 解密后,去掉補足的空格用strip() 去掉 def decrypt(self, text): cryptor = AES.new(self.key, self.mode, self.iv) plain_text = cryptor.decrypt(a2b_hex(text)) # return plain_text.rstrip(’0’) return bytes.decode(plain_text).rstrip(’0’)if __name__ == ’__main__’: pc = PrpCrypt(’0CoJUm6Qyw8W8jud’) # 初始化密鑰 data = input('請輸入待加密數據:')# e = pc.encrypt(data) # 加密 d = pc.decrypt(e).encode() # 解密 print('加密:', e) print('解密:', d)

以上就是Python實現AES加密,解密的兩種方法的詳細內容,更多關于Python實現AES加密,解密的資料請關注好吧啦網其它相關文章!

標簽: Python 編程
相關文章:
主站蜘蛛池模板: 欧美一级片在线播放 | 亚洲资源在线 | 亚洲国产精品一区二区不卡 | 国产免费v片在线看 | 在线播放一级片 | 国产成人亚洲精品无广告 | 亚洲成a人片在线v观看 | 欧美日韩在线观看视频 | 亚洲国产精品激情在线观看 | 欧美大尺度xxxxx视频 | 日韩成人在线播放 | 国产成人精品一区二区三在线观看 | a毛片视频 | 国产精品九九视频 | 久草资源视频 | 日韩欧美一及在线播放 | 一级成人毛片免费观看欧美 | 日本加勒比在线 | 国产欧美17694免费观看视频 | 欧美久久久久久久久 | 亚州在线视频 | 久久全国免费久久青青小草 | a欧美视频 | 日韩经典视频 | 在线亚州 | 免费黄色美女视频 | 国产私拍福利精品视频推出 | 最新更新国内自拍视频 | 久久久久久88色愉愉 | 一级不卡毛片免费 | 亚洲国产成人久久综合野外 | 亚洲欧美另类自拍第一页 | 亚洲精品视频在线观看视频 | 美女黄视频在线观看 | 99r8这是只有精品视频9 | 欧美人与z0z0xxxx | 欧美一级三级 | 日本www免费视频网站在线观看 | 99国产精品高清一区二区二区 | 成年网站免费视频黄 | 400部大量精品情侣网站 |