DigestUtils sha256编码与JavaScript的等效性是什么?

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

我调用following并创建密码散列

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是固定的。它用于服务器端身份验证。可能是下一次:)