JS逆向之解密之DES,AES加/解密


前言

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(fhttp://spider.wangluozhe.com/challenge/3|{
            
     t}).encode(utf-8))  # 加密
plain_text = cryptor.decrypt(encrypted_text).decode().rstrip( )  # 解密
print(encrypted_text)  #结果	bxb9x1dBx13Icxd2x93xxabLx0e(Arx85x0exadxb0xec\x82xd9x86#xce3x93)xf2xfdxf6xda.8
xa9Zxdax15xebxd7xe9xb0Qxd9Nx85;xbbxa6xf6xb5x8dx85xe7
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) #结果	bPx92xbaxa1x89xe8	xddx11Uxf3xb7Dx92x9axd6
print(plain_text)	#结果 123456789@@

总结

就先这么多了,之后再更新其他的加密方法的加、解密

经验分享 程序员 微信小程序 职场和发展