我正在使用MessageDigest类来使用SHA1或MD5获取字符串的哈希值。以下是使用MD5的示例代码
private static String applyHashToKey(String key){
byte[] hashkey = null;
MessageDigest md = null;
try {
md = MessageDigest.getInstance("MD5");
} catch (NoSuchAlgorithmException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
try {
hashkey = md.digest(new BASE64Decoder().decodeBuffer(key));
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
String result = new BASE64Encoder().encodeBuffer(hashkey);
return result;
}
现在我注意到我要么使用SHA1,要么使用MD5 哈希字符串,我从该函数返回的字符串最终总是有一个\ r \ n。
例如:Y60SedKVyEkKH4LKdikpc + zu5 + 0 = \ r \ n
了解发生了什么。这样可以,或者我做错了什么并介绍\ r \ n我自己?
答案 0 :(得分:1)
现在我注意到,无论是使用SHA1还是使用MD5,我从该函数返回的哈希字符串最终总是有一个\ r \ n。
显然 Base64编码器正在提供线路终结器。否则它会编码。