Javascript电子邮件加密,我这样做对吗?

时间:2017-07-20 16:39:25

标签: javascript php jquery wordpress

我想出了一种使用javascript加密电子邮件地址的方法,但由于我不熟悉编程,我不确定我的解决方案有多有效。基本上我使用高级自定义字段提取电子邮件,保存其垃圾邮件版本,然后在页脚中使用javascript对其进行转换。仅供参考我正在使用Wordpress。

以下是该页面的相关部分:

<?php get_header(); ?>

<a href='' id='email'></a>

<script type="text/javascript">
  var email_storage = "nospam<?php the_field('team-email'); ?>";
  console.log(email_storage);
</script>

<?php get_footer(); ?>

然后这个脚本加载到页脚中(在jQuery之后)。

var email_length_nospam = email_storage.length;
var email = email_storage.substr(6,email_length_nospam);
var email_length = email.length;
var at = email.indexOf('@');
var email_name = email.substr(0,at);
var email_domain = email.substr((at+1),email_domain);
console.log(email_length_nospam,email);

jQuery('a#email').html(email_name+'@'+email_domain);
jQuery('a#email').attr('href','mailto:'+email);

我的问题是:

我错过了什么明显的东西吗?换句话说,由于我的错误,垃圾邮件机器人会轻易解码吗?

1 个答案:

答案 0 :(得分:1)

您可以从this电子邮件链接混淆器生成器检查生成的Javascript。例如,如果 info@example.com 用于电子邮件地址和链接文本,则会生成此内容:

{ coded = "DMUm@WyBVJgW.AmV"
  key = "RGS5Amu4aKOHnZIix0TzqV8EBle1MQPDyhrkNfCp3gWXdjFbwvcosU9JY726Lt"
  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+"'>info@example.com</a>")
}

我不确定它的效果如何。