Advertisement
outsider

AJAX Email Obfuscator

Mar 31st, 2009
409
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 3.62 KB | None | 0 0
  1. sendmail.php:
  2. <?php
  3.     include('safemail.php');
  4.     echo $tocode->decrypt($_GET['id']);
  5. ?>
  6.  
  7. safemail.php:
  8. <?php
  9.         class Cipher {
  10.                 private $securekey, $iv;
  11.                 function __construct() {
  12.                         $this->securekey = hash('sha256','<secret>',TRUE);
  13.                         $this->iv = mcrypt_create_iv(32);
  14.                 }
  15.                 function encrypt($input) {
  16.                         return base64_encode(mcrypt_encrypt(MCRYPT_RIJNDAEL_256,$this->securekey, $input, MCRYPT_MODE_ECB, $this->iv));
  17.                 }
  18.                 function decrypt($input) {
  19.                         return trim(mcrypt_decrypt(MCRYPT_RIJNDAEL_256,
  20.                                         $this->securekey, base64_decode($input),MCRYPT_MODE_ECB, $this->iv));
  21.                 }
  22.         }
  23.  
  24.         $tocode = new Cipher();
  25.  
  26.         function linkemail($email,$title=FALSE) {
  27.                 global $tocode;
  28.                 return "<a title=\"".($title?$title:"Retrieve email")."\" rel=\"safemail_".$tocode->encrypt($email)."\">".($title?$title:"Send email")."</a>";
  29.         }
  30. ?>
  31.  
  32. site.js:
  33. function addFormEvent(func) {
  34.         if (!document.getElementById | !document.getElementsByTagName)
  35.                 return;
  36.  
  37.         var oldonload=window.onload;
  38.         if (typeof window.onload != 'function') {
  39.                 window.onload=func;
  40.         } else {
  41.                 window.onload=function() {
  42.                         oldonload();
  43.                         func();
  44.                 }
  45.         }
  46. }
  47.  
  48. function safeMail() {
  49.         if (!document.getElementsByTagName)
  50.                 return;
  51.         var tags = document.getElementsByTagName("a");
  52.         for (var i=0; i<tags.length; i++) {
  53.                 if (tags[i].getAttribute("rel")) {
  54.                         if (tags[i].getAttribute("rel").substr(0,8) == "safemail") {
  55.                                 var id = tags[i].getAttribute("rel").substr(9);
  56.                                 sendRequest('/sendmail.php?id='+id,handleRequest,tags[i]);
  57.                         }
  58.                 }
  59.         }
  60. }
  61.  
  62. function sendRequest(url,callback,target,postData) {
  63.         var req = createXMLHTTPObject();
  64.         if (!req) return;
  65.         var method = (postData) ? "POST" : "GET";
  66.         req.open(method,url,true);
  67.         req.setRequestHeader('User-Agent','XMLHTTP/1.0');
  68.         if (postData)
  69.                 req.setRequestHeader('Content-type','application/x-www-form-urlencoded');
  70.         req.onreadystatechange = function () {
  71.                 if (req.readyState != 4) return;
  72.                 if (req.status != 200 && req.status != 304) {
  73.                         return;
  74.                 }
  75.                 callback(req,target);
  76.         }
  77.         if (req.readyState == 4) return;
  78.         req.send(postData);
  79. }
  80.  
  81. var XMLHttpFactories = [
  82.         function () {return new XMLHttpRequest()},
  83.         function () {return new ActiveXObject("Msxml2.XMLHTTP")},
  84.         function () {return new ActiveXObject("Msxml3.XMLHTTP")},
  85.         function () {return new ActiveXObject("Microsoft.XMLHTTP")}
  86. ];
  87.  
  88. function createXMLHTTPObject() {
  89.         var xmlhttp = false;
  90.         for (var i=0;i<XMLHttpFactories.length;i++) {
  91.                 try {
  92.                         xmlhttp = XMLHttpFactories[i]();
  93.                 }
  94.                 catch (e) {
  95.                         continue;
  96.                 }
  97.                 break;
  98.         }
  99.         return xmlhttp;
  100. }
  101.  
  102. function handleRequest(req,target) {
  103.         target.target = "_blank";
  104.         target.href = "mailto:"+req.responseText;
  105.         target.innerHTML = req.responseText;
  106. }
  107.  
  108. addFormEvent(safeMail);
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement