对称加密
对称加密的意思是加密和解密用的同一个密钥,常见的对称加密算法有:AES,DES 和 3DES;这里我们主要讨论 AES 和 DES。
测试网站:https://the-x.cn/cryptography/Aes.aspx
AES
pip install pycrypto => 很多人装不上....
pip install pycryptodome => 可以装..
安装之后依然不好用.. 发现只有crypto 而Crypto用不了.
去模块的安装目录. 改一下文件名, 把小写的c改成大写的C
- 长度
- 16:AES-128
- 24:AES-192
- 32:AES-256
- MODE 加密模式
- ECB:一种基础的加密方式,密文被分割成分组长度相等的块,然后单独一个一个加密,一个一个输出组成的密文;
- CBC:是一种循环模式,前一个分组的密文和当前分组的明文异或或操作后再加密,这样做的目的是增强破解难度;
- CFB/OFB:实际上是一种反馈模式,目的也是增强破解版的难度;
FCB 和 CBC 的加密结果是不一样的,两者的模式不同,而且 CBC 会在第一个密码块运算时加入一个初始化向量。
from Crypto.Cipher import AES
aes = AES.new(b'balabalabalabala', mode=AES.MODE_CBC,
IV=b'0102030405060708')
data = "吃饭"
data_bs = data.encode("utf-8")
pad_len = 16 - len(data_bs) % 16
data_bs += (pad_len * chr(pad_len)).encode("utf-8")
bs = aes.encrypt(data_bs)
print(bs)
# bs = b'\xd8\x949^\xaf\xc6;\xa9\xb8\xaf\xd1\xa5\xf5\xd0\xf7n'
res = aes.decrypt(bs)
print(res.decode("utf-8"))
评论