簡體   English   中英

這個 SHA-256 Javascript 代碼有什么問題?

[英]What's wrong in this SHA-256 Javascript code?

var secure;
var authentic;
secure = prompt("Enter password","");
alert(secure);

var c1 = CryptoJS.SHA256(secure);
alert(c1);


authentic = prompt("Enter password","");
alert(authentic);
var c2=CryptoJS.SHA256(authentic);
alert(c2);

if(c1==c2)
{
    alert("hi");
}
else
{
    alert("bye");
}

我使用腳本“ http://crypto-js.googlecode.com/svn/tags/3.1.2/build/rollups/sha256.js

解釋:什么,我想要做的是比較散列密碼。如果輸入的兩個密碼(安全和真實)已經散列(分別為 c1 和 c2),它必須向我顯示 'hi'。 但我發現它總是向我顯示“再見”。

問題:當我比較 c1 和 c2 時,我得到的結果總是“再見”,盡管當我使用警告框顯示 c1 和 c2 時,它們的值是相同的。

我對散列有點陌生。 非常感謝您的幫助!

文檔

您返回的哈希值還不是字符串。 它是一個 WordArray 對象。 在字符串上下文中使用 WordArray 對象時,它會自動轉換為十六進制字符串。

當您在 JavaScript 中比較對象時,您正在測試它們是否是同一個對象,而不是它們是否是相同的對象。

由於您創建了兩個 WordArray,因此您正在比較兩個不同(但可能相同)的對象。

您需要將它們轉換為字符串。

if ( (''+c1) == (''+c2) ) 

或者

if ( c1.toString() == c2.toString() )

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM