DES,AE对称加密
前言
DES,AES都是对称加密,为可逆加密,类似的还有3DES加密等
一、DES的加、解密
密钥必须是8位或者16位,必须为bytes,超过8位或16位取前8位或16位
from Crypto.Cipher import AES, DES
t = str(time.time())[:8] #时间错前8位
key = f'{t}'.encode() #转化bytes
cryptor = DES.new(key=key, mode=DES.MODE_ECB)
encrypted_text = cryptor.encrypt(pad(f'http://spider.wangluozhe.com/challenge/3|{t}').encode('utf-8')) # 加密
plain_text = cryptor.decrypt(encrypted_text).decode().rstrip(' ') # 解密
print(encrypted_text) #结果 b'\xb9\x1dB\x13Ic\xd2\x93x\xabL\x0e(Ar\x85\x0e\xad\xb0\xec\\\x82\xd9\x86#\xce3\x93)\xf2\xfd\xf6\xda.8\r\xa9Z\xda\x15\xeb\xd7\xe9\xb0Q\xd9N\x85;\xbb\xa6\xf6\xb5\x8d\x85\xe7'
print(plain_text) #结果 http://spider.wangluozhe.com/challenge/3|16279904
二、AES的加、解密
AES与DES加密差不多
from Crypto.Util.Padding import pad
from Crypto.Cipher import AES, DES
m = str(int(time.time() * 1000)) #13位时间戳
key = (m+'123').encode() #填充为16位密钥
cryptor = AES.new(key=key, mode=AES.MODE_ECB)
data = cryptor.encrypt(pad('123456789@@'.encode(), AES.block_size)) #加密
plain_text = cryptor.decrypt(data).decode() #解密
print(data) #结果 b'P\x92\xba\xa1\x89\xe8\t\xdd\x11U\xf3\xb7D\x92\x9a\xd6'
print(plain_text) #结果 123456789@@
总结
就先这么多了,之后再更新其他的加密方法的加、解密