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を渡しています。このメソッドをサブクラス化してオーバーライドする以外に、私がしなければならないことよりも良い方法はありますか?