加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Python > 正文

python3.5 使用pycryptodome替换pyCyrpto

发布时间:2020-12-17 17:01:31 所属栏目:Python 来源:网络整理
导读:介绍 1.在之前的AES加密中,python2或者3.4采用的是pyCyrpto这个模块,但是昨天废了好大劲去安装它都是失败,而经过大量查阅发现此库已经停止维护了,在安装过程中尽管用pip install pycryto 去下载,对应的tar.gz可以下载,但是在自动安装时会报错,说是没

介绍

1.在之前的AES加密中,python2或者3.4采用的是pyCyrpto这个模块,但是昨天废了好大劲去安装它都是失败,而经过大量查阅发现此库已经停止维护了,在安装过程中尽管用pip install pycryto 去下载,对应的tar.gz可以下载,但是在自动安装时会报错,说是没有微软2014的工具环境。

2.经查阅,发现pyCyrpto库的后续分支,有一个叫pyCryptodome的库,是前代的延伸版,下面给出一个全面的地址,如果有pip安装不了的库可以通过此网站进行对应的下载。?

https://www.lfd.uci.edu/~gohlke/pythonlibs/

pip安装方法:

pip?install?pycryptodome

demo代码

#AES-demo
import?base64
from?Crypto.Cipher?import?AES
'''
采用AES对称加密算法
'''
#?str不是16的倍数那就补足为16的倍数
def?add_to_16(value):
????while?len(value)?%?16?!=?0:
????????value?+=?''
????return?str.encode(value)??#?返回bytes
#加密方法
def?encrypt_oracle():
????#?秘钥
????key?=?'123456'
????#?待加密文本
????text?=?'abc123def456'
????#?初始化加密器
????aes?=?AES.new(add_to_16(key),?AES.MODE_ECB)
????#先进行aes加密
????encrypt_aes?=?aes.encrypt(add_to_16(text))
????#用base64转成字符串形式
????encrypted_text?=?str(base64.encodebytes(encrypt_aes),?encoding='utf-8')??#?执行加密并转码返回bytes
????print(encrypted_text)
#解密方法
def?decrypt_oralce():
????#?秘钥
????key?=?'123456'
????#?密文
????text?=?'qR/TQk4INsWeXdMSbCDDdA=='
????#?初始化加密器
????aes?=?AES.new(add_to_16(key),?AES.MODE_ECB)
????#优先逆向解密base64成bytes
????base64_decrypted?=?base64.decodebytes(text.encode(encoding='utf-8'))
????#
????decrypted_text?=?str(aes.decrypt(base64_decrypted),encoding='utf-8')?#?执行解密密并转码返回str
????print(decrypted_text)
if?__name__?==?'__main__':
???#?encrypt_oracle()
????decrypt_oralce()

原文:https://blog.csdn.net/s740556472/article/details/78778522


(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读