我正在使用 SHA-512 对我的密码进行哈希处理并将它们存储在 mysql 数据库中。是否有任何要求 sha-512 的输入不应包含任何特殊字符?因为密码“Qwerty123.1”和“Qwerty123”。被同等对待,但“Qwerty.11”与上述不同。问题是什么?
我正在使用的代码是:
BASE64Decoder decoder=new BASE64Decoder();
byte[] b=decoder.decodeBuffer(r1); //r1 is the string containing password
MessageDigest md=MessageDigest.getInstance("SHA-512");
md.update(b);
byte[] plaintext=md.digest();
BASE64Encoder encoder=new BASE64Encoder();
String digest1=encoder.encode(plaintext); //digest1 contains the msg digest