(python crypto) Python使用Crypto库实现加密解密的示例详解
Python中的Crypto库是一个包含了多种密码学算法(比如AES,RSA等)的库,下面我就以AES为例来讲解一下如何使用Crypto库来的实现加密解密。
- 首先,需要安装Crypto库,你可以直接使用pip来安装:
pip install pycryptodome
- 简单的AES加密解密例子如下:
from Crypto.Cipher import AES from Crypto.Util.Padding import pad, unpad from Crypto.Random import get_random_bytes key = get_random_bytes(16) # 生成一个16字节的密钥 cipher = AES.new(key, AES.MODE_ECB) # 创建一个cipher对象,参数分别是密钥和模式 original_data = b"This is a test." # 原始数据 padded_data = pad(original_data, 16) # 填充原始数据,以满足AES加密的数据长度要求 encrypted_data = cipher.encrypt(padded_data) # 加密填充后的数据
解密
decrypt_cipher = AES.new(key, AES.MODE_ECB) decrypted_padded_data = decrypt_cipher.decrypt(encrypted_data) decrypted_data = unpad(decrypted_padded_data, 16) print(decrypted_data) # b"This is a test."
这段代码首先定义了一个16字节的随机密钥,然后创建一个使用该密钥和ECB模式的cipher。之后用此cipher来加密原始数据。解密部分则是首先创建一个解密用的cipher,然后用此cipher来解密数据。 需要注意的是,数据在加密前需要被填充到适合的长度(16的倍数)。同样,解密后的数据也需要去掉填充才能得到原始数据。 以上就是如何使用Python的Crypto库来进行简单的AES加密解密。其它加密算法比如RSA也有相应的类可以使用,使用方法也是类似的。
(mysql month) MySQL中MONTH函数怎么用 MySQL中的MONTH函数:提取日期或日期/时间表达式中的月份 全网首发(图文详解1)