【问题标题】:How to decrypt password from JavaScript CryptoJS.AES.encrypt()如何从 JavaScript CryptoJS.AES.encrypt() 解密密码
【发布时间】: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


【解决方案1】:

你不能。你没有加密密码,而是变量n,密码是用来加解密的,但本身没有加密。

更新: 如果通过“解密密码”你的意思是简单地将你得到的整数数组显示为一个字符串,那是一个不同的问题,很大程度上取决于你希望结果看起来像什么(例如 HEX 字符串或 ASCII 字符串) .

Word Array to String 可能重复)

【讨论】:

  • Pycryptodome 的等价物是什么样的?也就是我上面留下的CryptoJS代码如果是Pycryptodome
猜你喜欢
  • 2010-09-15
  • 1970-01-01
  • 2011-01-04
  • 1970-01-01
  • 2011-07-30
  • 2015-07-14
  • 2011-07-14
  • 1970-01-01
  • 2014-03-27
相关资源
最近更新 更多