<?php /** * simple method to encrypt or decrypt a plain text string * initialization vector(IV) has to be the same when encrypting and decrypting * PHP 5.4.9 * * Retrieved from: * https://naveensnayak.wordpress.com/2013/03/12/simple-php-encrypt-and-decrypt/ * * this is a beginners template for simple encryption decryption * before using this in production environments, please read about encryption * * @param string $action: can be 'encrypt' or 'decrypt' * @param string $string: string to encrypt or decrypt * @param string $key: encryption key * @param string $iv: encryption iv * * @return string */ function easy_crypt($action, $string, $key = "Encryption-Key", $iv="What-even-is-an-IV?") { $output = false; $encrypt_method = "AES-256-CBC"; $secret_key = $key; $secret_iv = $iv; // hash $key = hash('sha256', $secret_key); // iv - encrypt method AES-256-CBC expects 16 bytes - else you will get a warning $iv = substr(hash('sha256', $secret_iv), 0, 16); if( $action == 'encrypt' ) { $output = openssl_encrypt($string, $encrypt_method, $key, 0, $iv); $output = base64_encode($output); } else if( $action == 'decrypt' ){ $output = openssl_decrypt(base64_decode($string), $encrypt_method, $key, 0, $iv); } return $output; } ?>