Android和Javascript中相同字符串的哈希值不同

Android和Javascript中相同字符串的哈希值不同,javascript,android,sha256,Javascript,Android,Sha256,对于SHA-256,相同字符串的哈希值在Javascript和Android中不同: Javascript代码: var hashedPassword = CryptoJS.SHA256(userPassword); var passwordText = hashedPassword.toString(CryptoJS.enc.Base64); Android代码: MessageDigest messageDigest = MessageDigest.getInstance("SHA-256

对于SHA-256,相同字符串的哈希值在Javascript和Android中不同:

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();
字符串“beast”的输出:

在Javascript中:

1bf417bd87162d5d77a5ce3259e81bdee9f8a0ef56bc0f12eadcd5805a94b708
在Android中:

G/QXvYcWLV13pc4yWegb3un4oO9WvA8S6tzVgFqUtwg=

根据
CryptoJS.enc.Base64
需要另一个组件。如果找不到,则默认为十六进制。

您的Javascript输出字符串看起来像Base16,而不是Base64。事实上,它们在转换后是相同的。