I’ve got this function for encrypting passwords in Java, but somehow when I call
MessageDigest, it returns a different result every time even though I call it with the same password. I wonder if I am initializing it wrong somehow.
public String encrypt (String password) {
MessageDigest md = MessageDigest.getInstance("SHA-1");
md.reset();
md.update(password.getBytes(Charset.forName("utf-8")),0,password.length());
String res = md.digest().toString();
}
The
.toString()method on thebyte[]that is the return value of.digest()just gives you the representation of the array, not of its contents.See this answer on how to convert your byte array to a hex string.
Another approach is using Arrays.toString(byte[]) although that probably does not give you the format you want.