Лучший способ запутать адрес электронной почты

Я создаю приложение, которое требует раздающих адресов электронной почты в querystrings и соединении с этими страницами в общедоступных документах.

Я хотел бы препятствовать тому, чтобы мой сайт стал небесами спам-робота, таким образом, я ищу простой алгоритм (предпочтительно в JavaScript) для шифрования/запутывания адреса, таким образом, это может использоваться публично URL INA, не делая адрес электронной почты легкой целью.

исключая

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

Предпочтительно результатом была бы довольно короткая строка, которая могла легко использоваться в URL. Какие-либо предложения, для какой алгоритм я мог использовать?

6
задан caf 10 August 2010 в 05:27
поделиться

4 ответа

RSA-шифрование данных с использованием открытого ключа, соответствующего закрытому ключу, который хранится только на вашем сайте.

Base64 и urlencode результат.

8
ответ дан 9 December 2019 в 20:38
поделиться

вы можете создать простую функцию, которая исключает каждое значение char с некоторым целым числом и создает строку в шестнадцатеричной кодировке. (адреса электронной почты не содержат символов, отличных от ascii, поэтому с многобайтовыми символами это не усложнит). например: [

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
3
ответ дан 9 December 2019 в 20:38
поделиться

Самый простой метод - просто хранить адреса электронной почты в таблице базы данных и передавать ключ / поле ID, которое вы просматриваете в тот момент, когда хотите отправить письмо.

0
ответ дан 9 December 2019 в 20:38
поделиться

Как насчет простого хеширования электронной почты, скажем, с помощью sha256?

0
ответ дан 9 December 2019 в 20:38
поделиться
Другие вопросы по тегам:

Похожие вопросы: