0

我正在使用 CryptoJS 库进行 Javascript MD5 和 SHA256 散列:https ://code.google.com/p/crypto-js/

SHA256 工作正常,但我无法将 MD5 哈希结果从单词数组转换回字符串。下面是我用来调试问题的代码 - 我已经替换了实际的哈希结果,并将console.log()输出添加为注释

email_hash = $rootScope.session.email.toLowerCase();

console.log('email', email_hash);
// email email@example.com

sha_hash = CryptoJS.SHA256(email_hash).toString(CryptoJS.enc.Hex);

console.log('sha', sha_hash);
// sha SHA256-VALUE-OUTPUTS-FINE

email_hash = CryptoJS.MD5( email_hash );

console.log( JSON.stringify( email_hash ) );
//{"words":[0000000000,-0000000000,-00000000000,0000000000],"sigBytes":16}

a = email_hash.toString( CryptoJS.enc.Latin1 );
b = email_hash.toString( CryptoJS.enc.Hex );

console.log( a, b );
// [object Object] [object Object] 

我对 MD5 结果做错了什么?

4

1 回答 1

2

哦,好的-答案不在我发布的代码中。

我使用的是 SHA256 代码的 3.0.2 版和 MD5 的 3.1.2 版。

将 SHA256 更新到 3.1.2,因此它们都在同一版本上,已修复它。我在 MD5 之前包含了 SHA256,所以它一定是覆盖了 MD5 文件中的某些内容。

于 2014-02-19T12:39:39.577 回答