2011-03-31 43 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,然後消化它,它工作正常