使用内联JavaScript加密mailto电子邮件地址

使用内联JavaScript加密mailto电子邮件地址,javascript,email,encryption,Javascript,Email,Encryption,我有以下JavaScript代码: <script type='text/javascript'> var v2="xxxxx"; var v7=unescape("%2%3432jklsjdkls%"); var v5=v2.length; var v1=""; for(var v4=0;v4<v5;v4++){ v1+=String.fromCharCode(v2.charCodeAt(v4)^v7.charCodeA

我有以下JavaScript代码:

<script type='text/javascript'>
    var v2="xxxxx";
    var v7=unescape("%2%3432jklsjdkls%");
    var v5=v2.length;
    var v1="";
    for(var v4=0;v4<v5;v4++){
        v1+=String.fromCharCode(v2.charCodeAt(v4)^v7.charCodeAt(v4));
    }
    document.write('<a href="javascript:void(0)" onclick="window.location=\'mail\u0074o\u003a'+v1+'?subject='+'\'">'+'test(at)test(dot)com<\/a>');
 </script>

var v2=“xxxxx”;
var v7=unescape(“%2%3432jklsjdkls%”);
var v5=v2.5长度;
var v1=“”;

对于(var v4=0;v4,这里提到了两个外部工具。对于这两个工具,您需要首先通过电子邮件生成Javascript代码




对不起,你需要Javascript才能给我发电子邮件。
这个工具最初是由的Tim Williams构思和编写的。代码是随机的 每次使用该工具时生成不同的加密密钥是由Andrew Molden编写的。 的Ross Killen还创建了一个PHP版本,以便在web应用程序中使用此技术


此代码作为免费软件分发,前提是作者的学分等保持如图所示。

我会做一些更简单、同样有效的事情,比如:

  • mailto:
    链接已被混淆,机器人程序无法读取
  • html评论被用作垃圾邮件,因此垃圾邮件机器人不会读取链接的文本,而对用户隐藏。可以有任何类型的垃圾邮件,例如带有
    显示的
    :无

另一个很好的工具是谷歌的reCAPTCHA工具,它通过允许用户在显示完整电子邮件地址之前输入屏幕上显示的字符来保护提供的电子邮件地址。请参见此处的链接:

虽然我发现许多解决方案很复杂,但一个简单的javascript就可以做到这一点脚本将显示您的域名

<a class="email" data-email="support"></a>

<script>
var emailLinks = document.getElementsByClassName('email');
for (i = 0; i < emailLinks.length; i++) {
    var ctrl = emailLinks[i];
    var email = ctrl.getAttribute('data-email') +  '@' + document.location.host;
    ctrl.href= 'mailto:' + email;
    ctrl.innerText = email;
}
</script>

var emailLinks=document.getElementsByClassName('email');
对于(i=0;i
我刚刚发现,该报告列出了一些在2018年1.5年试验中经过测试的方法,例如

  • 使用CSS的
    方向:rtl
  • 添加一些“空”跨距,包括更高级的css来隐藏它
  • 使用一些花哨的JS来混淆mailto链接

垃圾邮件机器人似乎越来越高级。

链接已断开。当您在网站上没有其他内容时,reCaptcha是一个隐私噩梦。您还可以将脚本中的url替换为类似
的新url(window.location).host
,以使脚本中的可读性更低。(这也将使脚本在几乎所有具有
support@
地址的站点上都能正常工作,而无需对其进行更改。)
<script type="text/javascript" language="javascript">
<!--
// Email obfuscator script 2.1 by Tim Williams, University of Arizona
// Random encryption key feature coded by Andrew Moulden
// This code is freeware provided these four comment lines remain intact
// A wizard to generate this code is at http://www.jottings.com/obfuscator/
{ coded = "34M3@34M3.nmp"
  key = "594NIGdDgELkcwoAbPQirZaYCn1mWhURt0syV7Ojpqf8H3XMFvlezJTS2ux6KB"
  shift=coded.length
  link=""
  for (i=0; i<coded.length; i++) {
    if (key.indexOf(coded.charAt(i))==-1) {
      ltr = coded.charAt(i)
      link += (ltr)
    }
    else {     
      ltr = (key.indexOf(coded.charAt(i))-shift+key.length) % key.length
      link += (key.charAt(ltr))
    }
  }
document.write("<a href='mailto:"+link+"'>Example</a>")
}
//-->
</script><noscript>Sorry, you need Javascript on to email me.</noscript>
<a class="email" data-email="support"></a>

<script>
var emailLinks = document.getElementsByClassName('email');
for (i = 0; i < emailLinks.length; i++) {
    var ctrl = emailLinks[i];
    var email = ctrl.getAttribute('data-email') +  '@' + document.location.host;
    ctrl.href= 'mailto:' + email;
    ctrl.innerText = email;
}
</script>