这不是为了安全,而是为了隐匿,因此临时用户将无法确定电子邮件地址是什么。
我不想在网址中显示电子邮件地址,如:
www.example.com/?id=johnsmith@example.com
我想加密电子邮件地址,目标是:
- 加密文本应该可以编码为查询字符串
- 长度应尽可能短
- 不应轻易解密,例如使用md5
醇>
- 我可以将值解密回来
有人可以建议符合上述标准的ecryption算法吗?
答案 0 :(得分:1)
当你谈论加密时,你会有字节,而不是字符。 你可以使用Base64将这些字节编码为字符。 例如:
import javax.xml.bind.DatatypeConverter;
// Encrypt if you really need to encrypt it
// I am assuming you have a method that receive a String, encrypt it and return the byte[] encrypted.
// If you don't know how to encrypt, just ask a new question about how to do it in Java.
byte[] b = encrypt( "email@example.com" );
String encoded = DatatypeConverter.printBase64Binary( b );
// Otherwise, just encode it
b = "email.example.com".getBytes(java.nio.charset.StandardCharsets.UTF_8);
encoded = DatatypeConverter.printBase64Binary( b );
答案 1 :(得分:0)
如果您的目标不是处理它的安全方面,那么您可以通过Base64编码和解码String来实现它
final String encodedValue = new BASE64Encoder().encode("johnsmith@example.com".getBytes());
System.out.println("encodedValue = "+encodedValue );
final String decodedValue = new String(new BASE64Decoder().decodeBuffer(encodedValue));
System.out.println("decodedValue = "+decodedValue);