DigestUtils sha256编码与JavaScript的等效性是什么?
我调用following并创建密码散列DigestUtils sha256编码与JavaScript的等效性是什么?,javascript,apache-commons,sha,sha256,Javascript,Apache Commons,Sha,Sha256,我调用following并创建密码散列 ByteString password = ByteString.copyFrom(DigestUtils.sha256("mypassword")); 但是现在我需要从客户端发送sha256转换的密码消息(JavaScript)。我厌倦了使用CryptoJS,如下所示 var pass = CryptoJS.SHA256(document.getElementById('password').value); var passhash = pa
ByteString password = ByteString.copyFrom(DigestUtils.sha256("mypassword"));
但是现在我需要从客户端发送sha256转换的密码消息(JavaScript)。我厌倦了使用CryptoJS,如下所示
var pass = CryptoJS.SHA256(document.getElementById('password').value);
var passhash = pass.toString(CryptoJS.enc.Latin1)
login(passhash);
我尝试了所有Base64、Latin1和Hex类型来获取字符串。但它不会产生与Java中相同的密码,因为Java中的密码存在字符编码问题。下面修复了这个问题 在JS中:
var password = pass.toString(CryptoJS.enc.Utf16);
在Java中:
byte[] passhash = jsCryptoString.getBytes("UTF-16BE");
问题在于字符编码。下面修复了这个问题 在JS中:
var password = pass.toString(CryptoJS.enc.Utf16);
在Java中:
byte[] passhash = jsCryptoString.getBytes("UTF-16BE");
使用,但sha是固定的。它用于服务器端身份验证。可能是下一次:)使用,但sha是固定的。它用于服务器端身份验证。可能是下一次:)