わかりました、私は少し混乱しています。MessageDigestを使用してパスワードをMD5ハッシュとしてデータベースに保存し、ユーザーがログインしようとしたときにハッシュを引き出してユーザーのパスワードを確認しようとしています。
したがって、ユーザーがregister.jspで登録するとき、私はこのコードを使用して、パスワード(コードでは「password」と呼ばれる文字列)をハッシュ(「hashtext」と呼ばれる)に変換します。
MessageDigest m = MessageDigest.getInstance("MD5");
m.reset();
m.update(password.getBytes());
byte[] digest = m.digest();
BigInteger bigInt = new BigInteger(1,digest);
String hashtext = bigInt.toString(16);
while(hashtext.length() < 32 ){
hashtext = "0"+hashtext;
}
次に、ユーザーがログインしようとしたときに入力したパスワードを確認する方法を管理する必要があります。別のページlogin.jspがあります。ここでは、入力したパスワードに対して上記とまったく同じコードを実行し、データベースから取得したハッシュに対して結果を確認します。
ただし、これは機能しません。これは、新しいMessageDigestオブジェクトが作成されたため(MessageDigest.getInstance( "MD5");)、アルゴリズムの動作が異なるためだと思います。
login.jspでregister.jspと同じMessageDigestオブジェクトが使用されていることを確認する必要がありますか?