Check out my latest game, Cupid Strikes Back !

ObfuscateMe (Joomla! plugin)

Update

ObfuscateMe released for Joomla 1.7 & 2.5.

About

ObfuscateMe is a Joomla! 1.5, 1.7 & 2.5 extension that hides part of (or whole) pages into JavaScript code in order to prevent (primarily) spambots to gather e-mail addresses from your published content. But it also prevents the content to be seen by web crawlers (like Google's, Yahoo!'s) who don't execute the JavaScript code in the pages they visit.

It hides anything, be it plain text or HTML, except for JavaScript code you want to be executed on the client side (which it hides from bots, but will not be executed).

For clients who don't have JavaScript enabled, it displays a customizable fall-back message.

In over two years of being published in the contact page and obfuscated with this plugin (check that page's source), I have got no spam in the mailbox of my e-mail address.

How it works

On the server's side, the page part to be obfuscated is encrypted with the simplest of all encryption algorithms (Caesar cipher) and a random key. On the client's side, the ciphertext is transformed into plaintext by JavaScript.

Though the encryption is simple, the text will appear to bots as a string of random alphanumeric characters, good enough for hiding it. The weakest link is not the strength of the encryption (because the decryption is automatic in the client's browser, so it needs the key anyway), but the ability of the bot to execute Javascript.

Usage

In the article editor

  {obfuscate}
  <!-- insert plain text, or well formatted HTML code here -->
  <!-- insert anything -->
  <!-- except for JavaScript code you want to be executed -->
  {/obfuscate}

You can have as many {obfuscate}{/obfuscate} tags as you wish in one page. Check the live examples below.

Configuration (in the Plugin Manager)

  • Alternative tag to trigger the plugin: Here you can write another trigger for the plugin. E.g. if you write here NewTriggeringTag, you'll invoke the plugin with: {NewTriggeringTag}{/NewTriggeringTag}.
  • Alternative message when JavaScript is not enabled: If the client browser has JavaScript disabled, this message will appear informing the user he needs to enable JavaScript. Let the field blank for the default message.

Conflicts with other plugins

  • Email Cloaking: If you intend to obfuscate e-mail addresses, you have to disable this plugin which is superseded by ObfuscateMe. (Email Cloaking transforms any e-mail address into JavaScript code which is executed by the browser — see below.)
  • Generally, any plugin that will generate JavaScript code (e.g. as does Email Cloaking) between {obfuscate}{/obfuscate} tags will not work, because ObfuscateMe encrypts that part, sends it to the browser, which decrypts and displays it via JavaScript. And a piece of JavaScript code written in the document by another piece of JavaScript code will not be executed.

Live examples

Refresh the page. The IDs, the cyphertext, and the key in the generated HTML will change. The content seen by the user will remain the same.

When you use more than one pair of {obfuscate}{/obfuscate} tags in the same page, the probability of name collisions in the generated code between different chunks of obfuscated data is practically zero (the suffixes' namespace size is 62^12 = 3226266762397899821056 > 10^21).

Example #1 (simple text):

  1. Joomla code:
    {obfuscate}a simple text{/obfuscate}
  2. Generated HTML source:
    <!-- ObfuscateMe -->
    <span id='m31_wrapper_c8lPY6zm38MJ' class='m31_encr_wrapper'>
    <span id='m31_cyphertext_c8lPY6zm38MJ' class='m31_encr_item'>9150a3999da09c9550a495a8a4</span>
    <span id='m31_token_c8lPY6zm38MJ' class='m31_encr_item'>OBuTfcoXWsHslYtBlUJVusctdg1zaO</span>
    <span id='m31_algorithm_c8lPY6zm38MJ' class='m31_encr_item'>caesar</span>
    <!-- fallback if no javascript -->This page part is protected against spam bots and web crawlers. In order to be displayed you need to enable Javascript in your browser, and then reload the page.<!-- /fallback --></span>
    
    <script type='text/javascript' language='JavaScript'>
    var encr_cyphertext = document.getElementById('m31_cyphertext_c8lPY6zm38MJ').innerHTML;
    var encr_token      = document.getElementById('m31_token_c8lPY6zm38MJ').innerHTML;
    var encr_algorithm  = document.getElementById('m31_algorithm_c8lPY6zm38MJ').innerHTML;
    var encr_plaintex   = '';
    
    document.getElementById('m31_wrapper_c8lPY6zm38MJ').innerHTML = 'loading...';
    switch (encr_algorithm)
    {
      case 'caesar':
        encr_plaintex = m31_CaesarDecrypt(m31_hexDecode(encr_cyphertext),m31_CaesarKeyFromToken(encr_token));
        break;
      default:
    }
    document.getElementById('m31_wrapper_c8lPY6zm38MJ').innerHTML = encr_plaintex;
    </script>
    <!-- /ObfuscateMe -->
    
    
  3. HTML output:
    5f1e71676b6e6a631e72637672 0Anme6HYyuQbZRbY1ziUqXaVsB1UfI5f caesar This page part is protected against spam bots and web crawlers. In order to be displayed you need to enable Javascript in your browser, and then reload the page.

Example #2 (HTML elements):

  1. Joomla code:
      {obfuscate}
      a <b>formatted</b> <i>text</i> is also <span style="color:yellow">possible</span>,<br/>
      as well as an e-mail address: <a href="mailto:account@mailserver.com">account@mailserver.com</a>
      {/obfuscate}
      
  2. Generated HTML source:
      <!-- ObfuscateMe -->
    <span id='m31_wrapper_StR6zifxb4YA' class='m31_encr_wrapper'>
    <span id='m31_cyphertext_StR6zifxb4YA' class='m31_encr_item'>3c4f4f904f559ba36aa2a3a19e9d965596a36a959ea19c90a3a39493559ba36a5ea2a3a19e9d965596a36a4f559ba36a985596a36aa394a7a3559ba36a5e985596a36a4f98a24f909ba29e4f9f9ea2a298919b945b393c4f4f90a24fa6949b9b4f90a24f909d4f945c9c90989b4f909393a194a2a2694f559ba36a904f97a194956c519c90989ba39e699092929ea49da36f9c90989ba294a1a594a15d929e9c515596a36a9092929ea49da36f9c90989ba294a1a594a15d929e9c559ba36a5e905596a36a3c4f4f</span>
    <span id='m31_token_StR6zifxb4YA' class='m31_encr_item'>8jY7Q1xxcRpoTISmO7EGYKFFCr3k0at</span>
    <span id='m31_algorithm_StR6zifxb4YA' class='m31_encr_item'>caesar</span>
    <!-- fallback if no javascript -->This page part is protected against spam bots and web crawlers. In order to be displayed you need to enable Javascript in your browser, and then reload the page.<!-- /fallback --></span>
    
    <script type='text/javascript' language='JavaScript'>
    var encr_cyphertext = document.getElementById('m31_cyphertext_StR6zifxb4YA').innerHTML;
    var encr_token      = document.getElementById('m31_token_StR6zifxb4YA').innerHTML;
    var encr_algorithm  = document.getElementById('m31_algorithm_StR6zifxb4YA').innerHTML;
    var encr_plaintex   = '';
    
    document.getElementById('m31_wrapper_StR6zifxb4YA').innerHTML = 'loading...';
    switch (encr_algorithm)
    {
      case 'caesar':
        encr_plaintex = m31_CaesarDecrypt(m31_hexDecode(encr_cyphertext),m31_CaesarKeyFromToken(encr_token));
        break;
      default:
    }
    document.getElementById('m31_wrapper_StR6zifxb4YA').innerHTML = encr_plaintex;
    </script>
    <!-- /ObfuscateMe -->
    
    
      
  3. HTML output:
    4b485e5e9f5e7ab1b2b0adaca57ca4adb0ab9fb2b2a3a27a6db1b2b0adaca57c5e7aa77cb2a3b6b27a6da77c5ea7b15e9faab1ad5e7ab1ae9fac5eb1b2b7aaa37b60a1adaaadb078b7a3aaaaadb5607caeadb1b1a7a0aaa37a6db1ae9fac7c6a7aa0b05e6d7c4b485e5e9fb15eb5a3aaaa5e9fb15e9fac5ea36bab9fa7aa5e9fa2a2b0a3b1b1785e7a9f5ea6b0a3a47b60ab9fa7aab2ad789fa1a1adb3acb27eab9fa7aab1a3b0b4a3b06ca1adab607c9fa1a1adb3acb27eab9fa7aab1a3b0b4a3b06ca1adab7a6d9f7c4b485e5e 0cb7qrgA6w9JmD2nnwWvvf4rmqEgP4tP caesar This page part is protected against spam bots and web crawlers. In order to be displayed you need to enable Javascript in your browser, and then reload the page.

Example #3 (HTML elements - a more complex example):

  1. Joomla code:
      {obfuscate}
      <table style="border:solid 1px red;width:30%;text-align:center">
      <tr>
        <td style="color:blue">00</td>
        <td>01</td>
      </tr>
      <tr>
        <td>10</td>
        <td>11</td>
      </tr>
      </table>
      {/obfuscate}
      
  2. Generated HTML source:
    <!-- ObfuscateMe -->
    <span id='m31_wrapper_gTXVKDgR8pkv' class='m31_encr_wrapper'>
    <span id='m31_cyphertext_gTXVKDgR8pkv' class='m31_encr_item'>dddddddddddde32931f8311e1f2922dd3031362922fadf1f2c2f21222ff7302c292621ddee2d35dd2f2221f83426213125f7f0ede2f831223531ea1e2926242bf720222b31222fdfe32431f8dddddde32931f8312fe32431f8dddddddddde32931f83121dd3031362922fadf202c292c2ff71f293222dfe32431f8edede32931f8ec3121e32431f8dddddddddde32931f83121e32431f8edeee32931f8ec3121e32431f8dddddde32931f8ec312fe32431f8dddddde32931f8312fe32431f8dddddddddde32931f83121e32431f8eeede32931f8ec3121e32431f8dddddddddde32931f83121e32431f8eeeee32931f8ec3121e32431f8dddddde32931f8ec312fe32431f8e32931f8ec311e1f2922e32431f8</span>
    <span id='m31_token_gTXVKDgR8pkv' class='m31_encr_item'>nhpiCkcsoTdehJ2mBSRfxCcRLRAFSx</span>
    <span id='m31_algorithm_gTXVKDgR8pkv' class='m31_encr_item'>caesar</span>
    <!-- fallback if no javascript -->This page part is protected against spam bots and web crawlers. In order to be displayed you need to enable Javascript in your browser, and then reload the page.<!-- /fallback --></span>
    
    <script type='text/javascript' language='JavaScript'>
    var encr_cyphertext = document.getElementById('m31_cyphertext_gTXVKDgR8pkv').innerHTML;
    var encr_token      = document.getElementById('m31_token_gTXVKDgR8pkv').innerHTML;
    var encr_algorithm  = document.getElementById('m31_algorithm_gTXVKDgR8pkv').innerHTML;
    var encr_plaintex   = '';
    
    document.getElementById('m31_wrapper_gTXVKDgR8pkv').innerHTML = 'loading...';
    switch (encr_algorithm)
    {
      case 'caesar':
        encr_plaintex = m31_CaesarDecrypt(m31_hexDecode(encr_cyphertext),m31_CaesarKeyFromToken(encr_token));
        break;
      default:
    }
    document.getElementById('m31_wrapper_gTXVKDgR8pkv').innerHTML = encr_plaintex;
    </script>
    <!-- /ObfuscateMe -->
    
    
  3. HTML output:
    120f41796667716a2578797e716a4227677477696a773f257874716e692536757d25776a6940257c6e69796d3f2538352a4025796a7d793266716e6c733f25686a73796a77402725677477696a774227352743120f41796774697e43120f41797743120f4179692578797e716a422768747174773f67717a6a274335354134796943120f4179694335364134796943120f4134797743120f41797743120f4179694336354134796943120f4179694336364134796943120f4134797743120f4134796774697e43120f4134796667716a43120f VC7yenxan9CDVeNk5KhMzqMFqAzTdPP7 caesar This page part is protected against spam bots and web crawlers. In order to be displayed you need to enable Javascript in your browser, and then reload the page.

Example #4 (non-ASCII characters):

If your OS does not have installed a font with proper Eastern European characters (in this case s and t with comma for Romanian), you will see scrambled text (mojibake) both in source and output.

  1. Joomla code:
      {obfuscate}
      <span style="font-size:120%"><b>LUCEAFĂRUL</b></span><br/>
      <span style="color:#999999"><i>a poem by Mihail Eminescu</i></span><br/>
      <br/>
      A fost odată ca-n povești <br/>
      A fost ca niciodată, <br/>
      Din rude mari împărătești, <br/>
      O prea frumoasă fată.<br/>
      <br/>
      Și era una la părinți <br/>
      Și mândră-n toate cele, <br/>
      Cum e Fecioara între sfinți <br/>
      Și luna între stele.<br/>
      <br/>
      Din umbra falnicelor bolți <br/>
      Ea pasul și-l îndreaptă <br/>
      Lângă fereastră, unde-n colț <br/>
      Luceafărul așteaptă.<br/>
      <br/>
      Privea în zare cum pe mări <br/>
      Răsare și străluce, <br/>
      Pe mișcătoarele cărări <br/>
      Corăbii negre duce,<br/>
      <br/>
      Îl vede azi, îl vede mâni,<br/>
      Astfel dorința-i gata; <br/>
      El iar, privind de săptămâni, <br/>
      Îi cade dragă fata.
      {/obfuscate}
      
  2. Generated HTML source:
    <!-- ObfuscateMe -->
    <span id='m31_wrapper_cW4FJ1q5A2Ig' class='m31_encr_wrapper'>
    <span id='m31_cyphertext_cW4FJ1q5A2Ig' class='m31_encr_item'>181e646c336b685966186b6c71645d351a5e67666c256b61725d32292a281d1a1e5f6c331e646c335a1e5f6c33444d3b3d393e1e1b2a2d30334a4d441e646c33275a1e5f6c331e646c33276b6859661e5f6c331e646c335a6a271e5f6c33181e646c336b685966186b6c71645d351a5b6764676a321b3131313131311a1e5f6c331e646c33611e5f6c33591868675d65185a7118456160596164183d6561665d6b5b6d1e646c3327611e5f6c331e646c33276b6859661e5f6c331e646c335a6a271e5f6c331e646c335a6a271e5f6c3339185e676b6c18675c596c1e1b2a2d3133185b5925661868676e5d1e1b2d2b2f336c61181e646c335a6a271e5f6c331839185e676b6c185b591866615b61675c596c1e1b2a2d313324181e646c335a6a271e5f6c33183c6166186a6d5c5d1865596a61181e615b616a5b3365681e1b2a2d31336a1e1b2a2d31336c5d1e1b2d2b2f336c61241e646c335a6a271e5f6c33184718686a5d59185e6a6d6567596b1e1b2a2d3133185e596c1e1b2a2d3133261e646c335a6a271e5f6c33181e646c335a6a271e5f6c33181e1b2d2b2e3361185d6a59186d665918645918681e1b2a2d31336a61661e1b2d2b313361181e646c335a6a271e5f6c33181e1b2d2b2e336118651e595b616a5b33665c6a1e1b2a2d31332566186c67596c5d185b5d645d24181e646c335a6a271e5f6c33183b6d65185d183e5d5b6167596a59181e615b616a5b33666c6a5d186b5e61661e1b2d2b313361181e646c335a6a271e5f6c33181e1b2d2b2e336118646d6659181e615b616a5b33666c6a5d186b6c5d645d261e646c335a6a271e5f6c331e646c335a6a271e5f6c33183c6166186d655a6a59185e596466615b5d64676a185a67641e1b2d2b313361181e646c335a6a271e5f6c33183d591868596b6d64181e1b2d2b2f33612564181e615b616a5b33665c6a5d59686c1e1b2a2d3133181e646c335a6a271e5f6c33441e595b616a5b33665f1e1b2a2d3133185e5d6a5d596b6c6a1e1b2a2d313324186d665c5d2566185b67641e1b2d2b3133181e646c335a6a271e5f6c3318446d5b5d595e1e1b2a2d31336a6d6418591e1b2d2b2f336c5d59686c1e1b2a2d3133261e646c335a6a271e5f6c33181e646c335a6a271e5f6c3318486a616e5d59181e615b616a5b33661872596a5d185b6d6518685d18651e1b2a2d31336a611e646c335a6a271e5f6c33184a1e1b2a2d31336b596a5d181e1b2d2b2f3361186b6c6a1e1b2a2d3133646d5b5d24181e646c335a6a271e5f6c3318485d1865611e1b2d2b2f335b1e1b2a2d31336c67596a5d645d185b1e1b2a2d31336a1e1b2a2d31336a61181e646c335a6a271e5f6c33183b676a1e1b2a2d31335a616118665d5f6a5d185c6d5b5d241e646c335a6a271e5f6c33181e646c335a6a271e5f6c33181e415b616a5b3364186e5d5c5d1859726124181e615b616a5b3364186e5d5c5d18651e595b616a5b336661241e646c335a6a271e5f6c3318396b6c5e5d64185c676a61661e1b2d2b3133592561185f596c5933181e646c335a6a271e5f6c33183d641861596a2418686a616e61665c185c5d186b1e1b2a2d3133686c1e1b2a2d3133651e595b616a5b33666124181e646c335a6a271e5f6c33181e415b616a5b3361185b595c5d185c6a595f1e1b2a2d3133185e596c592618</span>
    <span id='m31_token_cW4FJ1q5A2Ig' class='m31_encr_item'>fQl67ywUDmeBEHbdOD9SSSTHXeKpJU</span>
    <span id='m31_algorithm_cW4FJ1q5A2Ig' class='m31_encr_item'>caesar</span>
    <!-- fallback if no javascript -->This page part is protected against spam bots and web crawlers. In order to be displayed you need to enable Javascript in your browser, and then reload the page.<!-- /fallback --></span>
    
    <script type='text/javascript' language='JavaScript'>
    var encr_cyphertext = document.getElementById('m31_cyphertext_cW4FJ1q5A2Ig').innerHTML;
    var encr_token      = document.getElementById('m31_token_cW4FJ1q5A2Ig').innerHTML;
    var encr_algorithm  = document.getElementById('m31_algorithm_cW4FJ1q5A2Ig').innerHTML;
    var encr_plaintex   = '';
    
    document.getElementById('m31_wrapper_cW4FJ1q5A2Ig').innerHTML = 'loading...';
    switch (encr_algorithm)
    {
      case 'caesar':
        encr_plaintex = m31_CaesarDecrypt(m31_hexDecode(encr_cyphertext),m31_CaesarKeyFromToken(encr_token));
        break;
      default:
    }
    document.getElementById('m31_wrapper_cW4FJ1q5A2Ig').innerHTML = encr_plaintex;
    </script>
    <!-- /ObfuscateMe -->
    
    
  3. HTML output:
    e0fc3330212ee03334392c25fde2262f2e34ed33293a25faf1f2f0e5e2fefc3334322f2e27fe0c1503050106e6e3f2f5f8fb12150cfcef3334322f2e27fefcef3330212efefc2232e0effee0fc3330212ee03334392c25fde2232f2c2f32fae3f9f9f9f9f9f9e2fefc252dfe21e0302f252de02239e00d292821292ce0052d292e25332335fcef252dfefcef3330212efefc2232e0effee0fc2232e0effee001e0262f3334e02f242134e6e3f2f5f9fbe02321ed2ee0302f3625e6e3f5f3f7fb3429e0fc2232e0effee001e0262f3334e02321e02e2923292f242134e6e3f2f5f9fbece0fc2232e0effee004292ee032352425e02d213229e0e62923293223fb2d30e6e3f2f5f9fb32e6e3f2f5f9fb3425e6e3f5f3f7fb3429ece0fc2232e0effee00fe030322521e02632352d2f2133e6e3f2f5f9fbe0262134e6e3f2f5f9fbeefc2232e0effee0fc2232e0effee0e6e3f5f3f6fb29e0253221e0352e21e02c21e030e6e3f2f5f9fb32292ee6e3f5f3f9fb29e0fc2232e0effee0e6e3f5f3f6fb29e02de62123293223fb2e2432e6e3f2f5f9fbed2ee0342f213425e023252c25ece0fc2232e0effee003352de025e0062523292f213221e0e62923293223fb2e343225e03326292ee6e3f5f3f9fb29e0fc2232e0effee0e6e3f5f3f6fb29e02c352e21e0e62923293223fb2e343225e03334252c25eefc2232e0effee0fc2232e0effee004292ee0352d223221e026212c2e2923252c2f32e0222f2ce6e3f5f3f9fb29e0fc2232e0effee00521e0302133352ce0e6e3f5f3f7fb29ed2ce0e62923293223fb2e243225213034e6e3f2f5f9fbe0fc2232e0effee00ce62123293223fb2e27e6e3f2f5f9fbe02625322521333432e6e3f2f5f9fbece0352e2425ed2ee0232f2ce6e3f5f3f9fbe0fc2232e0effee00c3523252126e6e3f2f5f9fb32352ce021e6e3f5f3f7fb3425213034e6e3f2f5f9fbeefc2232e0effee0fc2232e0effee0103229362521e0e62923293223fb2ee03a213225e023352de03025e02de6e3f2f5f9fb3229e0fc2232e0effee012e6e3f2f5f9fb33213225e0e6e3f5f3f7fb29e0333432e6e3f2f5f9fb2c352325ece0fc2232e0effee01025e02d29e6e3f5f3f7fb23e6e3f2f5f9fb342f2132252c25e023e6e3f2f5f9fb32e6e3f2f5f9fb3229e0fc2232e0effee0032f32e6e3f2f5f9fb222929e02e25273225e024352325ecfc2232e0effee0fc2232e0effee0e60923293223fb2ce036252425e0213a29ece0e62923293223fb2ce036252425e02de62123293223fb2e29ecfc2232e0effee001333426252ce0242f32292ee6e3f5f3f9fb21ed29e027213421fbfc2232effee0052ce0292132ece030322936292e24e02425e033e6e3f2f5f9fb3034e6e3f2f5f9fb2de62123293223fb2e29ece0fc2232e0effee0e60923293223fb29e023212425e024322127e6e3f2f5f9fbe026213421eee0e0e0e0e0 HROfeX75zbNWFhLYhpHRI6JjsfNOfC8x caesar This page part is protected against spam bots and web crawlers. In order to be displayed you need to enable Javascript in your browser, and then reload the page.

Example #5 (east-Asian characters):

If your OS does not have installed a font with East-Asian characters (in this case Japanese), you will see scrambled text (mojibake) both in source and output.

  1. Joomla code:
      {obfuscate}
      <p>A haiku by Matsuo Bashō:<p>
      <p>古池や 蛙飛込む 水の音</p>
      <p>furuike ya kawazu tobikomu mizu no oto</p>
      <p>old pond... a frog leaps inwater’s sound</p>
      {/obfuscate}
      
  2. Generated HTML source:
    <!-- ObfuscateMe -->
    <span id='m31_wrapper_dWbH3jN1JkYY' class='m31_encr_wrapper'>
    <span id='m31_cyphertext_dWbH3jN1JkYY' class='m31_encr_item'>928fc6a5ede6eef0faa5e7fea5d2e6f9f8faf4a5c7e6f8edaba8b8b8b8c0bf928faba8b7b6b9bcbbc0aba8b7bcbcb9b9c0aba8b6b7b9b7b5c0aba8b6b7b7bdbdc0aba8b8b9bab7b6c0aba8b8beb6b8b6c0aba8b8bbbcbebbc0aba8b6b7b9b6bbc0aba8b6b7b7bdbdc0aba8b7bcbcb5b5c0aba8b6b7b8bebdc0aba8b8bdbdbebec0928febfaf7faeef0eaa5fee6a5f0e6fce6fffaa5f9f4e7eef0f4f2faa5f2eefffaa5f3f4a5f4f9f4928ff4f1e9a5f5f4f3e9b3b3b3a5e6a5ebf7f4eca5f1eae6f5f8a5eef3fce6f9eaf7abf7f8f6faf4c0f8a5f8f4faf3e992</span>
    <span id='m31_token_dWbH3jN1JkYY' class='m31_encr_item'>t67hOZVtjMX5lCIu8vQkCTSZVmJ2Jkv</span>
    <span id='m31_algorithm_dWbH3jN1JkYY' class='m31_encr_item'>caesar</span>
    <!-- fallback if no javascript -->This page part is protected against spam bots and web crawlers. In order to be displayed you need to enable Javascript in your browser, and then reload the page.<!-- /fallback --></span>
    
    <script type='text/javascript' language='JavaScript'>
    var encr_cyphertext = document.getElementById('m31_cyphertext_dWbH3jN1JkYY').innerHTML;
    var encr_token      = document.getElementById('m31_token_dWbH3jN1JkYY').innerHTML;
    var encr_algorithm  = document.getElementById('m31_algorithm_dWbH3jN1JkYY').innerHTML;
    var encr_plaintex   = '';
    
    document.getElementById('m31_wrapper_dWbH3jN1JkYY').innerHTML = 'loading...';
    switch (encr_algorithm)
    {
      case 'caesar':
        encr_plaintex = m31_CaesarDecrypt(m31_hexDecode(encr_cyphertext),m31_CaesarKeyFromToken(encr_token));
        break;
      default:
    }
    document.getElementById('m31_wrapper_dWbH3jN1JkYY').innerHTML = encr_plaintex;
    </script>
    <!-- /ObfuscateMe -->
    
    
  3. HTML output:
    25225488565938807981838d387a913865798c8b8d87385a798b803e3b4b4b4b53525447885625225488563e3b4a494c4f4e533e3b4a4f4f4c4c533e3b494a4c4a48533e3b494a4a5050533e3b4b4c4d4a49533e3b4b51494b49533e3b4b4e4f514e533e3b494a4c494e533e3b494a4a5050533e3b4a4f4f4848533e3b494a4b5150533e3b4b50505151535447885625225488567e8d8a8d81837d3891793883798f79928d388c877a818387858d388581928d38868738878c8754478856252254885687847c388887867c4646463879387e8a877f38847d79888b3881868f798c7d8a3e8a8b898d87538b388b878d867c544788562522 2hIBcivoANMg8fiSPcsGDgioz07drW2u caesar This page part is protected against spam bots and web crawlers. In order to be displayed you need to enable Javascript in your browser, and then reload the page.

Download


License

Copyright © 2010 Adrian Cozma, http://pte.ro. All rights reserved.

Released under GPL 2.0.

Full license text at http://www.gnu.org/licenses/old-licenses/gpl-2.0.txt.

This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License version 2 as published by the Free Software Foundation.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.