7
votes

Meilleure façon d'obscurcir une adresse email

Je crée une application nécessitant de transmettre des adresses électroniques autour de QueryStrings et de relier à ces pages dans les documents publics.

J'aimerais empêcher mon site de devenir le ciel de Spambot, alors je recherche un algorithme simple (de préférence en JavaScript) pour chiffrer / obscurcir l'adresse afin de pouvoir utiliser l'URL d'INA publiquement sans faire l'adresse email cible facile. P>

EX P>

www.mysite.com/page.php?e=bob@gmail.com
 to
www.mysite.com/page.php?e=aed3Gfd469201


1 commentaires

Les clients doivent-ils décrypter les courriels? Vous devez savoir que AED3GFD469201 signifie bob@gmail.com mais les clients doivent-ils travailler avec le courrier électronique de Bob?


5 Réponses :


0
votes

Que diriez-vous de bloquer simplement l'email, dites avec SHA256?


2 commentaires

Et comment récupérez-vous le courrier électronique?


J'ai pensé à cela, mais je frappe alors la réalisation de Borealid.



8
votes

RSA-chiffrer les données à l'aide de la clé publique correspondant à une clé privée détenue uniquement par votre site.

base64 et urlencode le résultat.


3 commentaires

C'est le seul moyen «sécurisé» de le faire. Vous pouvez faire des choses plus simples comme Rot13, etc. qui seraient faciles et incroyables la plupart des types de spams, mais vous savez ... facile à surmonter si quelqu'un écrit un bot de spam personnalisé.


RSA semble un peu robuste pour mes besoins. Je n'ai pas besoin de "sécuriser" complètement l'email, je dois juste m'assurer qu'il est protégé des robots des robots et (de préférence) ne ressemble à un e-mail de pourriture laid-13'ed comme YTF@reger.com.


Sautez ensuite le cryptage et juste basé64 la chaîne.



1
votes

Certaines options qui se viennent à mon esprit :)

  • moc.liamg@bob
  • ob@gmail.comb
  • bobx@gmail.com (où x est constant)
  • mob@gmail.cob

0 commentaires

4
votes

Vous pouvez faire une fonction simple, qui XOR chaque valeur de caractère avec certains entiers et créerait une chaîne codée hexagonale. (Les adresses électroniques ne contiennent pas de caractères non-ASCII, de sorte qu'il ne compliquera pas avec des caractères multibytes). E.g.:

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


0 commentaires

0
votes

La méthode la plus simple consiste simplement à stocker les adresses e-mail dans une table de base de données et transmettez un champ Key / ID que vous recherchez au point où vous souhaitez envoyer un email.


0 commentaires