Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- <!DOCTYPE html>
- <html lang="en">
- <head>
- <meta charset="utf-8" />
- <title>Encrypt with javascript and decrypt using php</title>
- <meta name="generator" content="BBEdit 10.5" />
- <script src="http://crypto-js.googlecode.com/svn/tags/3.1.2/build/rollups/aes.js"></script>
- <script src="http://crypto-js.googlecode.com/svn/tags/3.1.2/build/rollups/pbkdf2.js"></script>
- <script>
- function encrypt_me(obj)
- {
- // alert(obj.input_value.value);
- var input_value = document.getElementById("input_value").value;
- // alert(input_value);
- var salt = CryptoJS.lib.WordArray.random(128/8);
- var key = CryptoJS.PBKDF2("Secret Passphrase", salt, { keySize: 128/32, iterations: 500 });
- var iv = CryptoJS.enc.Hex.parse('101112131415161718191a1b1c1d1e1f'); // just chosen for an example, usually random as well
- var encrypted = CryptoJS.AES.encrypt(input_value+"_Messsage", key, { iv: iv });
- var data_base64 = encrypted.ciphertext.toString(CryptoJS.enc.Base64);
- var iv_base64 = encrypted.iv.toString(CryptoJS.enc.Base64);
- var key_base64 = encrypted.key.toString(CryptoJS.enc.Base64);
- document.getElementById("data_base64").value = data_base64;
- document.getElementById("iv_base64").value = iv_base64;
- document.getElementById("key_base64").value = key_base64;
- document.getElementById("encrypted_value").value = encrypted;
- }
- </script>
- </head>
- <body>
- <?php
- $mode = 'text'; // choices {"text", "hidden"}
- if(isset($_POST['submit']))
- {
- echo('<pre>'.print_r($_POST, true).'</pre>');
- $input_value = $_POST['input_value'];
- $encrypted_value = base64_decode($_POST['encrypted_value']);
- $decrypted_value = $_POST['decrypted_value'];
- $encrypted = base64_decode($_POST["data_base64"]); // data_base64 from JS
- $iv = base64_decode($_POST["iv_base64"]); // iv_base64 from JS
- $key = base64_decode($_POST["key_base64"]); // key_base64 from JS
- $decrypted_value = rtrim( mcrypt_decrypt( MCRYPT_RIJNDAEL_128, $key, $encrypted_value, MCRYPT_MODE_CBC, $iv ), "\t\0 " );
- echo ("\$decrypted_value : ".$decrypted_value."<br />");
- }
- else
- {
- $input_value = "";
- $encrypted_value = "";
- $decrypted_value = "";
- $encrypted = "";
- $iv = "";
- $key = "";
- $plaintext = "";
- }
- ?>
- <form action="crypto.php" method="post" name="main_form" id="main_form">
- input_value : <input type="text" id="input_value" name="input_value" value="<?=$input_value?>" size="100"><br />
- encrypted_value : <input type="text" id="encrypted_value" name="encrypted_value" value="<?=base64_encode($encrypted_value)?>" size="100"><br />
- decrypted_value : <input type="text" id="decrypted_value" name="decrypted_value" value="<?=$decrypted_value?>" size="100"><br />
- <br />
- data_base64 : <input type="<?=$mode?>" id="data_base64" name="data_base64" value="<?=base64_encode($encrypted)?>" size="100"><br />
- iv_base64 : <input type="<?=$mode?>" id="iv_base64" name="iv_base64" value="<?=base64_encode($iv)?>" size="100"><br />
- key_base64 : <input type="<?=$mode?>" id="key_base64" name="key_base64" value="<?=base64_encode($key)?>" size="100"><br />
- <input type="button" id="no_submit" name="no_submit" value="Encrypt" onclick="encrypt_me(this.form);">
- <br />
- <input type="submit" id="submit" name="submit" value="Decrypt">
- </form>
- </body>
- </html>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement