【问题标题】:How to convert this java hash sha 256 method to javascript using jssha to be used in node如何使用 jssha 将此 java hash sha 256 方法转换为 javascript 以在节点中使用
【发布时间】:2018-02-16 01:00:44
【问题描述】:

我正在尝试覆盖我之前在 Stack 中发布的回送默认密码哈希,但无济于事

How to override the default password hashing method and validation method of loopback?

我有这个Java方法

 public static String digest(String string, String salt) throws Exception {
    MessageDigest digest = MessageDigest.getInstance("SHA-256");
    digest.reset();
    digest.update(salt.getBytes("UTF-8"));

    byte[] btPass = digest.digest(string.getBytes("UTF-8"));
    int iter = 1000;
    for (int i = 0; i < iter; i++) {
        digest.reset();
        btPass = digest.digest(btPass);
    }
    HexBinaryAdapter adapter = new HexBinaryAdapter();
    return adapter.marshal(btPass);
}

如何在使用 jssha 1.6.0 的 Javascript Node js 中使用它

我试过用这个,但是这两种方法的哈希值似乎不同,谁能帮我解决这个问题

var shaObj = new jsSHA(plain + salt, 'TEXT');
//console.log('passphrase : text', text);
//console.log('passphrase : salt', salt);
//salt = salt || '';
//var shaObj = new jsSHA(salt + text + massiveSalt, 'TEXT');
console.log(shaObj.getHash('SHA-256', 'HEX'));

this.$password = plain;
console.log(plain);

【问题讨论】:

    标签: javascript java node.js hash sha256


    【解决方案1】:
            var shaObj = new jsSHA("salt"+plain, "BYTES");
            var hash = shaObj.getHash("SHA-256", "HEX");
    
            for (var i = 0; i < 1000; i++) {
                shaObj = new jsSHA(hash, "HEX");
                hash = shaObj.getHash("SHA-256", "HEX");
            }
    
            console.log(hash);
    

    这应该可以工作

    【讨论】:

      猜你喜欢
      • 2020-04-15
      • 1970-01-01
      • 2021-09-05
      • 2014-11-06
      • 1970-01-01
      • 2014-08-29
      • 1970-01-01
      • 2022-07-04
      • 2015-08-21
      相关资源
      最近更新 更多