【发布时间】:2019-10-15 04:15:23
【问题描述】:
我有以下 javascript 代码 CryptoJS 来加密变量 n:
var l;
var n="190.207.78.120";
return l=D.enc.Base64.parse(btoa("AD7552C821266C8255348F726CAB9589")),D.AES.encrypt(n,l,{mode:D.mode.ECB,padding:D.pad.Pkcs7}).toString();
输出:
IV9Ada02dMtXNr8zDfZDUA==
变量l 是我的密码,但是当我尝试用console.log(l) 显示它时,它是一个对象:
sigBytes:32, 字数: [1094989621, 892486456, 842084918, 910374962, 892678964, 944125746, 910377282, 959789113]
以同样的方式,我可以使用以下代码进行解密:
var l;
var n="IV9Ada02dMtXNr8zDfZDUA==";
return l=D.enc.Base64.parse(btoa("AD7552C821266C8255348F726CAB9589")),D.AES.decrypt(n,l,{mode:D.mode.ECB,padding:D.pad.Pkcs7}).toString(D.enc.Utf8);
输出:
190.207.78.120
如何提取变量n加密或解密的密码?
【问题讨论】:
-
题外话,但欧洲央行模式几乎绝对是错误的选择。实际上,您确实需要对每个用例都使用 AEAD 模式(GCM 与 AES 一起使用很流行)。密文延展性是一个现实问题。
标签: javascript