thieumao

AES128, AES256 encrypt/decrypt in PHP

Feb 17th, 2014
151
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 1.15 KB | None | 0 0
  1. <?
  2.  
  3. function aes128Encrypt($key, $data) {
  4.   if(16 !== strlen($key)) $key = hash('MD5', $key, true);
  5.   $padding = 16 - (strlen($data) % 16);
  6.   $data .= str_repeat(chr($padding), $padding);
  7.   return mcrypt_encrypt(MCRYPT_RIJNDAEL_128, $key, $data, MCRYPT_MODE_CBC, str_repeat("\0", 16));
  8. }
  9.  
  10. function aes256Encrypt($key, $data) {
  11.   if(32 !== strlen($key)) $key = hash('SHA256', $key, true);
  12.   $padding = 16 - (strlen($data) % 16);
  13.   $data .= str_repeat(chr($padding), $padding);
  14.   return mcrypt_encrypt(MCRYPT_RIJNDAEL_128, $key, $data, MCRYPT_MODE_CBC, str_repeat("\0", 16));
  15. }
  16.  
  17. function aes128Decrypt($key, $data) {
  18.   if(16 !== strlen($key)) $key = hash('MD5', $key, true);
  19.   $data = mcrypt_decrypt(MCRYPT_RIJNDAEL_128, $key, $data, MCRYPT_MODE_CBC, str_repeat("\0", 16));
  20.   $padding = ord($data[strlen($data) - 1]);
  21.   return substr($data, 0, -$padding);
  22. }
  23.  
  24. function aes256Decrypt($key, $data) {
  25.   if(32 !== strlen($key)) $key = hash('SHA256', $key, true);
  26.   $data = mcrypt_decrypt(MCRYPT_RIJNDAEL_128, $key, $data, MCRYPT_MODE_CBC, str_repeat("\0", 16));
  27.   $padding = ord($data[strlen($data) - 1]);
  28.   return substr($data, 0, -$padding);
  29. }
Advertisement
Add Comment
Please, Sign In to add comment