我正在使用 JDBC 连接灯,并且我在 MySQL 数据库上使用 MD5 作为密码散列了LondonWeight这个词。然后,我需要根据集合检查输入的密码,即LondonWeight以检查它们是否匹配。但是,我的 Java 代码中的散列会为该单词返回不同的输出。
MySQL 哈希:1274d1c52d7a5a9125bd64f1f9a26dce
Java哈希:132310771724320562704545645352563257040366
这是我的哈希码:
private String hashPass(String pass) throws NoSuchAlgorithmException {
MessageDigest mdEnc = MessageDigest.getInstance("MD5");
mdEnc.update(pass.getBytes(), 0, pass.length());
String md5 = new BigInteger(1, mdEnc.digest()).toString(8); // Encrypted
return md5;
}
当我将它打印到终端时,它肯定会对文本框中输入的字符串进行哈希处理,以便我可以检查。知道为什么它会给出不同的输出吗?我知道有不同的方法来散列字节或什么?