Web サービスからの Java のパスワードを比較しようとしています。
次のようにコマンドラインからサービスを呼び出します。
curl -d '[{"usr":"joe","password":"joe"}]' http://mydomain.com:8080/myservice/login
JSON を解析し、パスワードをハッシュ メソッドに渡します。
私のハッシュ方法は次のとおりです。
private String createHash(String password){
byte[] bytesOfMessage = null;
try {
bytesOfMessage = password.getBytes("UTF-8");
} catch (UnsupportedEncodingException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
MessageDigest md = null;
try {
md = MessageDigest.getInstance("MD5");
} catch (NoSuchAlgorithmException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
String thedigest = md.digest(bytesOfMessage).toString();
System.out.println("passed in: "+thedigest);
return thedigest;
}
問題は、まったく同じパスワードでこのメソッドを呼び出すたびに、出力されるハッシュが異なることです。パスワードを比較してユーザーを認証できるように、パスワードを同じハッシュで出力するにはどうすればよいですか?
ありがとう!