2017-03-15 25 views
0

不同相同的字符串的散列值是在Javascript和Android不同爲SHA-256:哈希值是在的Android和Javascript

JavaScript代碼:

var hashedPassword = CryptoJS.SHA256(userPassword); 
var passwordText = hashedPassword.toString(CryptoJS.enc.Base64); 

的Android代碼:

MessageDigest messageDigest = MessageDigest.getInstance("SHA-256"); 
byte[] hashedPassword = messageDigest.digest(userPassword.getBytes()); 
String hashedPasswordText = Base64.encodeToString(hashedPassword, Base64.DEFAULT).trim(); 

輸出絃樂 「野獸」:

在Javascript中:

1bf417bd87162d5d77a5ce3259e81bdee9f8a0ef56bc0f12eadcd5805a94b708 

在機器人:

G/QXvYcWLV13pc4yWegb3un4oO9WvA8S6tzVgFqUtwg= 
+1

您的Javascript輸出字符串看起來像Base16,而不是Base64。事實上,改造後它們是完全相同的。 – ephemient

回答

0

根據this answerCryptoJS.enc.Base64需要另一個組件。如果它沒有找到它,它默認爲HEX。