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 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容