【问题标题】:Hashing and Salting passwords with shiro使用 shiro 散列和加盐密码
【发布时间】:2023-07-30 05:27:01
【问题描述】:

在apache shiro中默认的hash实现如下:

MessageDigest digest = getDigest(getAlgorithmName());
        if (salt != null) {
            digest.reset();
            digest.update(salt);
        }
        byte[] hashed = digest.digest(bytes);
        int iterations = hashIterations - 1; //already hashed once above
        //iterate remaining number:
        for (int i = 0; i < iterations; i++) {
            digest.reset();
            hashed = digest.digest(hashed);
        }
        return hashed;

注意它是如何把盐放在第一位的。我们必须针对哈希是密码+盐而不是盐+密码的遗留系统进行身份验证

我目前正在此方法调用之外执行 concat 并将 null 传递给 salt。除了继承和覆盖这个方法之外,还有比我必须做的更好的方法吗?

【问题讨论】:

    标签: java hash salt shiro


    【解决方案1】:

    事实证明,继承 SimpleHash 并覆盖一个方法就可以了。只需重置摘要,添加盐然后 pw 然后消化它,它工作正常

    【讨论】:

      最近更新 更多