`

python aes加密

阅读更多
import hashlib
from Crypto.Cipher import AES
import base64

class prpcrypt():
    def __init__(self,key):
        self.key = key  # 因为在python3中AES传入参数的参数类型存在问题,需要更换为 bytearray , 所以使用encode编码格式将其转为字节格式(linux系统可不用指定编码)
        IV = 16 * '\x00'
        self.iv=IV.encode("utf-8")
        self.mode = AES.MODE_CBC
        self.BS = AES.block_size
        self.pad = lambda s: s + (self.BS - len(s) % self.BS) * chr(self.BS - len(s) % self.BS)
        self.unpad = lambda s: s[0:-ord(s[-1])]

    # 加密
    def encrypt(self, text):
        text = self.pad(text).encode("utf-8")
        cryptor = AES.new(self.key, self.mode, self.iv)
        # 目前AES-128 足够目前使用(CBC加密)
        ciphertext = cryptor.encrypt(text)
        # base64加密
        return base64.b64encode(bytes(ciphertext))

    # 解密
    def decrypt(self, text):
        # base64解密
        text = base64.b64decode(text)
        cryptor = AES.new(self.key, self.mode, self.iv)
        # CBC解密
        plain_text = cryptor.decrypt(text)
        # 去掉补足的空格用strip() 去掉
        return self.unpad(bytes.decode(plain_text).rstrip('\0'))    # 解密字节???


def gen_binsha(data):
    shavalue = hashlib.sha256()
    shavalue.update(data)
    return shavalue.digest()

if __name__ == '__main__':
    key='78f40cecf89'
    key=gen_binsha(key.encode('utf-8'))
    pc = prpcrypt(key=key)  # 初始化密钥 和 iv

    text='qwerqwerkkk12345'
    e = pc.encrypt(text)  # 加密
    d = pc.decrypt(e)  # 解密
    print("加密:%s" % e)
    print("解密:%s"% d)
    print("长度:%s"% len(d))
0
0
分享到:
评论

相关推荐

    Python AES加密实例解析

    主要介绍了Python AES加密实例解析,具有一定借鉴价值,需要的朋友可以参考下

    Python AES 加密

    简单AES类,实现AES加密/解密,需要pycrypto支持.

    python实现AES加密解密

    本文实例为大家分享了python实现AES加密解密的具体代码,供大家参考,具体内容如下 (1)对于AES加密解密相关知识 (2)实现的功能就是输入0-16个字符,然后经过AES的加密解密最后可以得到原先的输入,运行的结果...

    Python AES加密模块用法分析

    主要介绍了Python AES加密模块用法,结合具体实例形式分析了AES加密模块的相关使用技巧与注意事项,需要的朋友可以参考下

    python AES加密解密,key的长度不受限制

    解密制度

    python之AES加密解密源码

    文档中提供了python3实现AES加密解密方案的源代码,亲测可行

    Python AES和Java AES/ECB/PKCS5Padding互转

    轻松实现 Python AES和Java AES/ECB/PKCS5Padding互转

    Python加密与解密

    Python加密与解密

    AES 加密算法详解

    整理的AES算法,包括小刀人翻译的版本和英文版本,供参考

    Python实现AES加密,解密的两种方法

    # 密钥(key), 密斯偏移量(iv) CBC模式加密 def AES_Encrypt(key, data): vi = '0102030405060708' pad = lambda s: s + (16 - len(s) ) * chr(16 - len(s) ) data = pad(data) # 字符串补位 cipher = AES....

    python基于AES加密算法.zip

    python基于AES加密算法.zippython基于AES加密算法.zippython基于AES加密算法.zippython基于AES加密算法.zippython基于AES加密算法.zippython基于AES加密算法.zippython基于AES加密算法.zippython基于AES加密算法....

    Python程序设计:AES数据加密.pptx

    任务 AES数据加密 INTERNATIONAL MEDICAL SUMMIT FORUM 任务 AES数据加密 任务背景 AES是密码学中的高级加密标准(Advanced Encryption Standard),又称Rijndael加密法,是美国联邦政府采用的一种区块加密标准。...

    python版AES加密解密,适配java

    该文件用来对字符串和文件进行AES加密解密使用,由于服务器常用java写,所以一般是服务器端的加密,到本地的解密。该解密适配java的加密解密

    python3-AES128:使用ECB模式的AES-128加密

    python3-AES128 使用ECB模式的AES-128加密

    python实现AES加密与解密

    AES加密方式有五种:ECB, CBC, CTR, CFB, OFB 从安全性角度推荐CBC加密方法,本文介绍了CBC,ECB两种加密方法的python实现 python 在 Windows下使用AES时要安装的是pycryptodome 模块  pip install pycryptodome ...

    基于AES加密算法的python.zip

    aes加密算法python实现 基于AES加密算法的python.zip

    go AES加密解密

    之前写了一个python监控系统,里面用到了使用了AES对密码...当然了,我这里使用了PKCS5Padding,因为之前的写的python AES加密解密使用的就是PKCS5Padding,为了能够python和go互通,这里就统一使用同一种方式。 3.这

    python3 + wxpython 实现 AES 加密工具

    python3 + wxpython 实现 AES 加密工具 ,主要功能: 1. 选择自定义的密钥文件 2. 选择自定义的明文文件 3. 加密成密文并显示 4. 选择密文文件 5. 选择呢密钥文件 6. 进行解密并显示出明文

Global site tag (gtag.js) - Google Analytics