我调用以下内容并创建密码哈希。
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相同的密码
答案 0 :(得分:1)
问题在于字符编码。以下修复了问题。
JS中的:
var password = pass.toString(CryptoJS.enc.Utf16);
在Java中:
byte[] passhash = jsCryptoString.getBytes("UTF-16BE");