首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >混淆电子邮件地址的最佳方法

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

Stack Overflow用户
提问于 2010-08-10 10:38:57
回答 5查看 755关注 0票数 7

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

我想防止我的网站成为垃圾邮件天堂,所以我正在寻找一种简单的算法(最好是在JavaScript中)来加密/混淆地址,这样它就可以在网址中公开使用,而不会使电子邮件地址成为容易攻击的目标。

例如

代码语言:javascript
复制
www.mysite.com/page.php?e=bob@gmail.com
 to
www.mysite.com/page.php?e=aed3Gfd469201

优选地,结果将是一个可以在URL中轻松使用的短字符串。对我可以使用的算法有什么建议吗?

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2010-08-10 10:42:16

RSA-使用与仅由您的站点持有的私钥对应的公钥加密数据。

Base64和urlencode结果。

票数 8
EN

Stack Overflow用户

发布于 2010-08-10 12:06:26

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

代码语言:javascript
复制
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
票数 4
EN

Stack Overflow用户

发布于 2010-08-10 10:49:23

一些选项出现在我的脑海中:)

  • moc.liamg@bob
  • ob@gmail.comb
  • bobX@gmail.com (其中X表示constant)
  • mob@gmail.cob
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3445659

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档