我正在解决客户端以加密格式通过URL发送电子邮件的问题。 我们必须在客户端使用blowfish进行加密,在结束时使用解密。
下面的BLOWFISH CODE ---
//ENCRYPTED as jAOtTv22BfkTkVrhTN/RHQ==
public String encrypt(String username,String code) throws Exception {
try {
byte[] keyData = (username).getBytes();
SecretKeySpec secretKeySpec = new SecretKeySpec(keyData, "Blowfish");
Cipher cipher = Cipher.getInstance("Blowfish");
cipher.init(Cipher.ENCRYPT_MODE, secretKeySpec);
byte[] hasil1 = cipher.doFinal(username.getBytes());
byte[] hasil2 = cipher.doFinal(code.getBytes());
return new BASE64Encoder().encode(hasil1);
} catch (Exception e) { System.out.println(e);
return null; }
}
//DECRYPT --doug@gmail.com
public String decrypt(String email,String code) throws Exception {
try {
byte[] keyData = (code).getBytes();
SecretKeySpec secretKeySpec = new SecretKeySpec(keyData, "Blowfish");
Cipher cipher = Cipher.getInstance("Blowfish");
cipher.init(Cipher.DECRYPT_MODE, secretKeySpec);
byte[] hasil = cipher.doFinal(new BASE64Decoder().decodeBuffer(email));
return new String(hasil);
} catch (Exception e) { System.out.println("exaception ="+e);
return null; }
}
我们需要在网页上显示之前解密和屏蔽。 但是特殊字符编码的问题就像url一样。如何处理它在我们这边解密??? 例如,我们得到了这个 -
http://localhost/demo/Controller?email=jAOtTv22BfkTkVrhTN/RHQ%3D%3D
where blowfish encryption is - jAOtTv22BfkTkVrhTN/RHQ==
在没有涉及特殊字符代码的情况下正常工作
e.g - wK6DTqKguftd0%2BePXqlB9BORWuFM39Ed
url中的字符代码---
http://perishablepress.com/url-character-codes/
提前感谢任何建议或帮助。
答案 0 :(得分:1)
如果您理解正确,则会遇到特定于URL的字符掩码问题,例如“=”。
如果是这样,您可以使用
java.net.URLDecoder.decode(text, encoding)
解码base64字符串。