python学习——AES解密
本帖最后由 clown9s 于 2023-3-26 18:34 编辑加密篇:python学习——AES加密
解密非封装版:
"""Remarks:crypto库的AES解密
"""
import base64
from encryption_2 import cryption# 之前已写好的加密函数
from Crypto.Cipher import AES
from Crypto.Util.Padding import unpad# unpad 去除填充
if __name__ == '__main__':
p_i_w = '012345678901234'# 明文
s_k = 'aaaabbbbcccc'# 密钥
c_msg, c_k = cryption(p_i_w, s_k)# 调用之前封装好的加密函数
mode_d = AES.new(c_k, AES.MODE_ECB)
# 初始化加密器后续用于解密 注意:加密时创建的加密器解密时不能用,需要重新初始化一个,但不需要修改模式
msg_d = mode_d.decrypt(base64.b64decode(c_msg))# decrypt 解密
msg_d = unpad(msg_d, 16, 'pkcs7').decode('utf-8')# 去除填充
print('明文:', p_i_w)
print('密钥:', unpad(c_k, 16, 'pkcs7').decode('utf-8'))
print('解密:', msg_d)
封装版的解密,并调用之前写好的加密函数:
import base64
from encryption_2 import cryption
from Crypto.Cipher import AES
from Crypto.Util.Padding import unpad, pad
def dec(d_d, d_k):
d_data = d_d.encode('utf-8')
d_key = d_k.encode('utf-8')
mode_d = AES.new(pad(d_key, 16, 'pkcs7'), AES.MODE_ECB)
msg_d = mode_d.decrypt(base64.b64decode(d_data))
msg_d = unpad(msg_d, 16, 'pkcs7').decode('utf-8')
return msg_d
if __name__ == '__main__':
p_i_w = input('请输入需加密的文本:')
s_k = input('请输入密钥:')
c_msg, k = cryption(p_i_w, s_k)# 这里返回了加密后的文本跟填充后的密钥,一般是不需要返回密钥的
print('加密后的文本:', c_msg)
a = input('请输入加密后的文本:')
b = input('请输入密钥:')
c = dec(a, b)
print('解密后的文本:', c)
页:
[1]