python 利用Crypto进行ECB 加密

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python 利用Crypto进行ECB 加密相关的知识,希望对你有一定的参考价值。

参考技术A windows下使用AES时安装pycryptodome 模块,pip install pycryptodome

linux 下使用AES时安装pycrypto模块,pip install pycrypto

```

from Crypto.Cipherimport AES

from binasciiimport b2a_hex, a2b_hex

from Cryptoimport Random

import base64

import json

class AesEncry(object):

        # aes秘钥 ,可根据自身需要手动生成

        key ="aes_keysaes_keysaes_keys"  

        def encrypt(self, data):

                data = json.dumps(data)

                mode = AES.MODE_ECB

                padding =lambda s: s + (16 -len(s) %16) *chr(16 -len(s) %16)

                cryptos = AES.new(self.key.encode("utf-8"), mode)

                cipher_text = cryptos.encrypt(padding(data).encode("utf-8"))

                return base64.b64encode(cipher_text).decode("utf-8")

        def decrypt(self, data):

                cryptos = AES.new(self.key.encode("utf-8"), AES.MODE_ECB)

                decrpytBytes = base64.b64decode(data)

                meg = cryptos.decrypt(decrpytBytes).decode('utf-8')

                return meg[:-ord(meg[-1])]

aes_encry_util = AesEncry()

#明文

data ="mypwd_test"

#加密

encry_data = aes_encry_util.encrypt(data)

print(encry_data)

# 对密文进行解密

decry_data = aes_encry_util.decrypt(encry_data)

print(decry_data)

```

如上便完成了利用python进行AES的ECB加密

以上是关于python 利用Crypto进行ECB 加密的主要内容,如果未能解决你的问题,请参考以下文章

Java AES / ECB / PKCS5Padding加密到crypto-js解密

AES/CBC 和 AES/ECB 加密后的数据大小

AES-128-ECB 16进制加密解密算法

java使用AES加密解密 AES-128-ECB加密

关于nodejs 怎么实现 crypto des加密

AES ECB模式+BASE64加解密