Python实现
AES加密代码,大佬帮帮忙啊
1条回答 默认 最新
- 陈年椰子 2021-12-08 21:36关注
没做过,有文档可以参考
PyCryptodome是python一个强大的加密算法库,可以实现常见的单向加密、对称加密、非对称加密和流加密算法。直接pip安装即可:pip install pycryptodome
官网地址:https://pycryptodome.readthedocs.io/en/latest/index.htmlfrom Crypto.Cipher import AES from Crypto.Util.Padding import pad from Crypto.Random import get_random_bytes # 要加密的内容 data = b"123456" # 随机生成16字节(即128位)的加密密钥 key = get_random_bytes(16) # 实例化加密套件,使用CBC模式 cipher = AES.new(key, AES.MODE_CBC) # 对内容进行加密,pad函数用于分组和填充 encrypted_data = cipher.encrypt(pad(data, AES.block_size)) # 将加密内容写入文件 file_out = open("encrypted.bin", "wb") # 在文件中依次写入key、iv和密文encrypted_data [file_out.write(x) for x in (key, cipher.iv, encrypted_data)] 对应解密代码如下: from Crypto.Cipher import AES from Crypto.Util.Padding import unpad # 从前边文件中读取出加密的内容 file_in = open("encrypted.bin", "rb") # 依次读取key、iv和密文encrypted_data,16等是各变量长度,最后的-1则表示读取到文件末尾 key, iv, encrypted_data = [file_in.read(x) for x in (16, AES.block_size, -1)] # 实例化加密套件 cipher = AES.new(key, AES.MODE_CBC, iv) # 解密,如无意外data值为最先加密的b"123456" data = unpad(cipher.decrypt(encrypted_data), AES.block_size)
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 1无用 1
悬赏问题
- ¥100 代写个MATLAB代码,有偿
- ¥15 ansys electronics 2021 R1安装报错,错误代码2,如图
- ¥30 搭建面包板由NE555N和SN74LS90N组成的计时电路时出了问题
- ¥15 无源定位系统的时差估计误差标准差
- ¥15 请问这个代码哪里有问题啊
- ¥20 python--version在命令端输入结果Python is not defined怎么办?还有pip不是exe格式是不是没安装成功?
- ¥15 通过GaussianView进行结构微调消除虚频
- ¥15 调用transformers库
- ¥15 由于导出的数据名字中带有/,导致Matlab打不开,怎么办?
- ¥15 新硬盘安装的程序总是崩溃,提示遇到错误