我使用以下代码在Java中加密我的电子邮件ID并将其作为参数发送到url中(使用URLEncoder.encode(encrypteInput(“email”))):
public static String encrypteInput(String input) {
String output = null;
input = input + ((int) Math.random()) % 1000;
try {
MessageDigest md5 = MessageDigest.getInstance("MD5");
output = new String(md5.digest(input.getBytes()));
} catch (Exception e) {
output = "";
}
return output;
}
但是,当我从servlet获取相同的参数时,它没有给我与encrypteInput(“email”)相同的输出。
答案 0 :(得分:0)
每当你有一个要存储在字符串中的字节数组时,你应该对字节数组进行十六进制或Base64编码(在这种特殊情况下,十六进制编码可能更好)。
Apache commons-codec有一个可用于此的Hex类:
byte[] bytes = ...
char[] encoded = Hex.encodeHex(bytes);
String encodedString = new String(encoded);