如何在Ruby中从5字加密哈希中找到SHA1加密字符串?

时间:2014-04-22 02:30:14

标签: javascript ruby encryption sha1 cryptojs

假设您正在使用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”

来源:https://code.google.com/p/crypto-js/#The_Hasher_Output

1 个答案:

答案 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"))

抱歉,我不太了解红宝石以便移植