我使用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发布于 2012-02-15 17:40:45
r1是有效的base64编码字符串吗?在我看来,你得到了同样的结果,因为你试图解码的东西不是有效的Base64数组,而BASE64Decoder不知何故失败了。你有没有尝试过这样的东西:
byte[] b = r1.getBytes("UTF-8");
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 digesthttps://stackoverflow.com/questions/9257595
复制相似问题