使用shiro哈希和Salting密码

时间:2011-03-31 16:04:52

标签: java hash salt shiro

在apache shiro中,默认的哈希实现如下:

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并为salt传递null。除了子类化和重写这种方法之外,还有比我必须做的更好的方法吗?

1 个答案:

答案 0 :(得分:2)

事实证明,继承SimpleHash并重写一个方法就可以了。只需重置摘要,然后加入盐然后将其消化,然后就可以了。