安装与使用
Crypto 算法库在 python 中最初叫 pycrypto,这个作者有点懒,好几年没有更新,后来就有大佬写了个替代库 pycryptodome。这个库目前只支持 python3,安装也很简单pip install pycryptodome就行了!详细的用法可以看看 官方文档
常见对称密码在 Crypto.Cipher 库下,主要有: DES 3DES AES RC4 Salsa20
非对称密码在 Crypto.PublicKey 库下,主要有: RSA ECC DSA
哈希密码在 Crypto.Hash 库下,常用的有: MD5 SHA-1 SHA-128 SHA-256
随机数在 Crypto.Random 库下
实用小工具在 Crypto.Util 库下
数字签名在 Crypto.Signature 库下
对称密码AES
注意:python3 和 python2 在字符串方面有个明显的区别 - python3 中有字节串 b'byte',python2 中没有字节。由于这个库是在 python3 下的,所以加解密用的都是字节!
使用这个库来加解密特别简单,记住这四步:
导入所需库
from Crypto.Cipher import AES
初始化 key
key = b'this_is_a_key'
实例化加解密对象
aes = AES.new(key,AES.MODE_ECB)
使用实例加解密
text_enc = aes.encrypt(b'helloworld')
from Crypto.Cipher import AES
import base64
key = bytes('this_is_a_key'.ljust(16,' '),encoding='utf8')
aes = AES.new(key,AES.MODE_ECB)
# encrypt
plain_text = bytes('this_is_a_plain'.ljust(16,' '),encoding='utf8')
text_enc = aes.encrypt(plain_text)
text_enc_b64 = base64.b64encode(text_enc)
print(text_enc_b64.decode(encoding='utf8'