我正在尝试比较来自 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;
}
问题是每次我使用完全相同的密码调用此方法时,打印的哈希值都不同。如何让密码具有相同的哈希值,以便我可以比较密码并验证用户身份?
谢谢!