2011-03-31 47 views
3

在Apache中腌制密码四郎默认哈希实现如下:散列与四郎

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验证。除了继承和覆盖这个方法,还有比我不得不做的更好的方法吗?

回答

2

原来子类SimpleHash和压倒一切的一个方法奏效了。只是重置摘要,加盐则PW,然后消化它,它工作正常