This is an old revision of the document!
WMMEGA FW >= 2.1147 WM-M2 FW >= 3.1147
Decrypt AES-encrypted data in string
Decrypts the string $data with length $length bytes. Pass the encryption key and iv value in the corresponding fields.
$data: AES-encrypted string - it should be a multiple of 16 bytes long
$length: length of encrypted string
$key: Encryption key - this should be multiples of 16 bytes long. A 16 character string will yield 128-bit encryption.
$iv: This should be a unique 16 character string which will be used for the iv table
Decrypted string (or int 0 for error)
<pre><? // create your custom key and IV value $key="0123456789abcdef"; // this is 16 bytes, or 128 bits $iv="abcdef0123456789"; // this needs to be 16 bytes long $data="This is my super secret encrypted string"; // round up the string length to the nearest multiple of 16 $len=intval((strlen($data)+1)/16)*16; // encrypt the data $encrypted_data = aes_encrypt($data,$len,$key,$iv); // store encrypted data into a base64-encoded string for easy tranport $base64_encrypted = base64_encode($encrypted_data); print("Your encrypted data is: ".$base64_encrypted); // this will yield: // fcPkxhW0UM4VIYB1CsbK/7wEBuC4WAwcO5tDBkcMXbfmf/gOHqdnrz5qHBRVY8Ls // base64 decode the string again $base64_decrypted = base64_decode($base64_encrypted); // we will use the calculated length from the encryption as the strlen() function // may not yield a valid result if the encrypted string has a zero in it. // decryption routine $plain_data = aes_decrypt(&$base64_decrypted,$len,$key,$iv); print("\r\nYour decrypted data is: ".$plain_data); ?>
The above example will output something similar to:
Your encrypted data is: fcPkxhW0UM4VIYB1CsbK/7wEBuC4WAwcO5tDBkcMXbckp5yUp4a92BeD7VpVGwd1 Your decrypted data is: This is my super secret encrypted string
aes_encrypt() - Encrypt data using the AES algorithm</html>