假设您正在使用CryptoJS.SHA1加密字符串“alextoul”。
如下面的源代码所述,您会得到一个看起来像这样的对象:
CryptoJS.SHA1(“alextoul”)= {words:{0:1025575641 1:-2026381578 2:1077518901 3:1028391820 4: 1049226021}}
如果你把它转换成你得到的字符串,结果证明:
CryptoJS.SHA1(“alextoul”)。ToString()=“3d210ad98737def64039a2353d4c038c3e89eb25”
现在我要做的是从5个单词中找到上面的字符串(“3d210ad98737def64039a2353d4c038c3e89eb25”),但是在Ruby中。
thefunctionineed(params [:words])#Equal to“3d210ad98737def64039a2353d4c038c3e89eb25”
答案 0 :(得分:0)
阅读资料来源:
https://code.google.com/p/crypto-js/source/browse/tags/3.1.2/src/core.js#181 - >
https://code.google.com/p/crypto-js/source/browse/tags/3.1.2/src/core.js#306 - >
function stringify(wordArray) {
// Shortcuts
var words = wordArray.words;
var sigBytes = wordArray.sigBytes;
// Convert
var hexChars = [];
for (var i = 0; i < sigBytes; i++) {
var bite = (words[i >>> 2] >>> (24 - (i % 4) * 8)) & 0xff;
hexChars.push((bite >>> 4).toString(16));
hexChars.push((bite & 0x0f).toString(16));
}
return hexChars.join('');
}
然后致电
stringify(CryptoJS.SHA1("alextoul"))
抱歉,我不太了解红宝石以便移植