URL中的MD5编码参数

时间:2014-03-08 03:43:17

标签: java

我使用以下代码在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”)相同的输出。

1 个答案:

答案 0 :(得分:0)

每当你有一个要存储在字符串中的字节数组时,你应该对字节数组进行十六进制或Base64编码(在这种特殊情况下,十六进制编码可能更好)。

Apache commons-codec有一个可用于此的Hex类:

byte[] bytes = ...
char[] encoded = Hex.encodeHex(bytes);
String encodedString = new String(encoded);