1

我调用以下并创建密码哈希。

ByteString password = ByteString.copyFrom(DigestUtils.sha256("mypassword"));

但现在我需要从客户端(JavaScript)发送经过 sha256 转换的密码消息。我厌倦了使用 CryptoJS 如下

 var pass = CryptoJS.SHA256(document.getElementById('password').value);
    var passhash = pass.toString(CryptoJS.enc.Latin1)
    login(passhash);

我尝试了所有 Base64、Latin1 和 Hex 类型来获取字符串。但它不会产生与 Java 相同的密码

4

1 回答 1

1

问题在于字符编码。以下修复了问题。

在 JS 中:

var password = pass.toString(CryptoJS.enc.Utf16); 

在 Java 中:

byte[] passhash = jsCryptoString.getBytes("UTF-16BE");
于 2013-01-21T09:39:17.297 回答