Javascript 混淆电子邮件地址的最佳方法

Javascript 混淆电子邮件地址的最佳方法,javascript,encryption,email,Javascript,Encryption,Email,我正在创建一个应用程序,它需要在查询字符串中传递电子邮件地址,并在公共文档中链接到这些页面 我想防止我的网站成为spambot天堂,所以我正在寻找一个简单的算法(最好是JavaScript)来加密/混淆地址,这样它就可以在URL中公开使用,而不必让电子邮件地址成为一个简单的目标 前 结果最好是一个很短的字符串,可以很容易地在URL中使用。对我可以使用什么算法有什么建议吗?简单地对电子邮件进行散列(比如使用sha256)怎么样?RSA使用仅由站点持有的私钥对应的公钥对数据进行加密 Base64和U

我正在创建一个应用程序,它需要在查询字符串中传递电子邮件地址,并在公共文档中链接到这些页面

我想防止我的网站成为spambot天堂,所以我正在寻找一个简单的算法(最好是JavaScript)来加密/混淆地址,这样它就可以在URL中公开使用,而不必让电子邮件地址成为一个简单的目标


结果最好是一个很短的字符串,可以很容易地在URL中使用。对我可以使用什么算法有什么建议吗?

简单地对电子邮件进行散列(比如使用sha256)怎么样?

RSA使用仅由站点持有的私钥对应的公钥对数据进行加密


Base64和Url对结果进行编码。

我想到了一些选项:)

  • 商务部。liamg@bob
  • ob@gmail.comb
  • bobX@gmail.com(其中X为常数)
  • mob@gmail.cob

您可以创建一个简单的函数,将每个字符值与某个整数进行异或运算,并生成一个十六进制编码的字符串。(电子邮件地址不包含非ascii字符,因此多字节字符不会使其复杂化)。e、 g:

obfusc=函数(s,c){
c=c | | 0x7f;
r=“”;
(i在s中){
valh=(s.charCodeAt(i)^c).toString(16);
如果(valh.length==1)valh=“0”+valh;
r+=谷;
};
返回r;
}
deobfusc=函数(s,c){
c=c | | 0x7f;
r=“”;
对于(var i=0;i 15101a3f1a071e120f131a511c1012->joe@example.com

最简单的方法是将电子邮件地址存储在数据库表中,并传递一个键/ID字段,在您希望实际发送电子邮件的位置查找该字段。

以及如何重新获取电子邮件?我想到了这一点,但后来我找到了Borealid的实现方法。这是唯一“安全”的方法。您可以uld可以做一些简单的事情,如ROT13等,这将很容易愚弄大多数类型的垃圾邮件机器人,但你知道……如果有人编写自定义垃圾邮件机器人,这很容易克服。RSA对于我的需求来说似乎有点重。我不需要完全“保护”电子邮件,我只需要确保它不受垃圾邮件的影响,并且(最好是)看起来不像一封丑陋的腐烂的电子邮件ytf@reger.com.Then跳过加密,只需输入字符串。客户端是否必须解密电子邮件?您必须知道
aed3Gfd469201
代表
bob@gmail.com
但客户是否必须处理鲍勃的电子邮件?
www.mysite.com/page.php?e=bob@gmail.com
 to
www.mysite.com/page.php?e=aed3Gfd469201
obfusc = function(s, c) {
  c = c || 0x7f;
  r = "";
  for (i in s) {
    valh = (s.charCodeAt(i) ^ c).toString(16);
    if (valh.length == 1) valh = "0" + valh;
    r += valh;
  };
  return r;
}

deobfusc = function(s, c) {
  c = c || 0x7f;
  r = "";
  for (var i=0; i<(s.length/2); i++) {
    r += String.fromCharCode(parseInt(s.substr(i*2, 2), 16) ^ c)
  };
  return r;
}

addr = "joe@example.com";
x = obfusc(addr);
alert(addr + " -> " + x + " -> " + deobfusc(x))

// joe@example.com -> 15101a3f1a071e120f131a511c1012 -> joe@example.com