Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/318.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 使用shiro对密码进行哈希和盐析_Java_Hash_Salt_Shiro - Fatal编程技术网

Java 使用shiro对密码进行哈希和盐析

Java 使用shiro对密码进行哈希和盐析,java,hash,salt,shiro,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 =

在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;
MessageDigest digest=getDigest(getAlgorithmName());
if(salt!=null){
reset();
文摘.最新情况(salt);
}
字节[]哈希=摘要。摘要(字节);
int iterations=hashIterations-1//上面已经散列过一次了
//迭代剩余的数字:
对于(int i=0;i
注意它是如何把盐放在第一位的。我们必须针对一个遗留系统进行身份验证,其中哈希值是password+salt,而不是salt+password


我目前正在这个方法调用之外执行concat,并为salt传入null。除了子类化和重写这个方法之外,还有比我现在必须做的更好的方法吗?

事实证明,子类化SimpleHash并重写一个方法就成功了。只需重新设置消化,添加盐,然后添加pw,然后消化,效果良好