吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 814|回复: 0
收起左侧

[学习记录] python学习——AES解密

[复制链接]
clown9s 发表于 2023-3-26 18:28
本帖最后由 clown9s 于 2023-3-26 18:34 编辑

加密篇:python学习——AES加密

解密非封装版:
[Python] 纯文本查看 复制代码
"""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)



封装版的解密,并调用之前写好的加密函数:
[Python] 纯文本查看 复制代码
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)

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-25 01:03

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表