Skip to content

Scrambles email addresses and phone numbers with ROT-18 to hide them from bots

License

Notifications You must be signed in to change notification settings

thibaudcolas/email-scramble

Repository files navigation

Encode/decode email addresses and phone numbers with ROT-18 to hide them from bots. Can be used server-side with Node.js or in a browser.

If you'd like to know more about obfuscation techniques and their success ratio, here is a great blog post on the subject.

Getting Started

email-scramble uses a simple ROT transformation. The default rotation is ROT-18: letters will be rotated by 13 and numbers by 5.

var encodedEmail = emailScramble.encode("[email protected]");
var decodedMail = emailScramble.decode(encodedMail);

// You can also pick any other flavor of ROT:
function myROT(str) {
  // Here letters are obfuscated with ROT-13 and numbers are kept clear.
  return emailScramble.rot(13, 0, str);
}

// Functional-programming partial application style:
var myRot = emailScramble.rot.bind(emailScramble, 13, 0);

Here is a real-world example:

// <a href="znvygb:[email protected]" data-email-scramble>Send me an email!</a>
var links = document.querySelectorAll("[data-email-scramble]");

links.forEach(function decodeLink(link) {
  link.href = emailScramble.decode(link.href);
});

Download & import

npm install --save email-scramble
// ES6+
import emailScramble from "email-scramble";

// The CommonJS way.
var emailScramble = require("email-scramble");

About

Scrambles email addresses and phone numbers with ROT-18 to hide them from bots

Topics

Resources

License

Code of conduct

Stars

Watchers

Forks

Packages

No packages published