【发布时间】:2017-03-16 05:10:02
【问题描述】:
对于 SHA-256,相同字符串的哈希值在 Javascript 和 Android 中是不同的:
Javascript 代码:
var hashedPassword = CryptoJS.SHA256(userPassword);
var passwordText = hashedPassword.toString(CryptoJS.enc.Base64);
安卓代码:
MessageDigest messageDigest = MessageDigest.getInstance("SHA-256");
byte[] hashedPassword = messageDigest.digest(userPassword.getBytes());
String hashedPasswordText = Base64.encodeToString(hashedPassword, Base64.DEFAULT).trim();
字符串“野兽”的输出:
在 Javascript 中:
1bf417bd87162d5d77a5ce3259e81bdee9f8a0ef56bc0f12eadcd5805a94b708
在安卓中:
G/QXvYcWLV13pc4yWegb3un4oO9WvA8S6tzVgFqUtwg=
【问题讨论】:
-
您的 Javascript 输出字符串看起来像 Base16,而不是 Base64。事实上,它们在转换后是相同的。
标签: javascript android sha256