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

参考文章:https://zhuanlan.zhihu.com/p/372200755


前言

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@@

总结

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

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值