Browse Source

Use AES-192 for encryption

tags/2.0.0-alpha
ekerazha 12 years ago
parent
commit
88bfce96d4
  1. 9
      framework/helpers/base/SecurityHelper.php

9
framework/helpers/base/SecurityHelper.php

@ -42,7 +42,8 @@ class SecurityHelper
public static function encrypt($data, $key) public static function encrypt($data, $key)
{ {
$module = static::openCryptModule(); $module = static::openCryptModule();
$key = StringHelper::substr($key, 0, mcrypt_enc_get_key_size($module)); // 192-bit (24 bytes) key size
$key = StringHelper::substr($key, 0, 24);
srand(); srand();
$iv = mcrypt_create_iv(mcrypt_enc_get_iv_size($module), MCRYPT_RAND); $iv = mcrypt_create_iv(mcrypt_enc_get_iv_size($module), MCRYPT_RAND);
mcrypt_generic_init($module, $key, $iv); mcrypt_generic_init($module, $key, $iv);
@ -63,7 +64,8 @@ class SecurityHelper
public static function decrypt($data, $key) public static function decrypt($data, $key)
{ {
$module = static::openCryptModule(); $module = static::openCryptModule();
$key = StringHelper::substr($key, 0, mcrypt_enc_get_key_size($module)); // 192-bit (24 bytes) key size
$key = StringHelper::substr($key, 0, 24);
$ivSize = mcrypt_enc_get_iv_size($module); $ivSize = mcrypt_enc_get_iv_size($module);
$iv = StringHelper::substr($data, 0, $ivSize); $iv = StringHelper::substr($data, 0, $ivSize);
mcrypt_generic_init($module, $key, $iv); mcrypt_generic_init($module, $key, $iv);
@ -148,7 +150,8 @@ class SecurityHelper
if (!extension_loaded('mcrypt')) { if (!extension_loaded('mcrypt')) {
throw new InvalidConfigException('The mcrypt PHP extension is not installed.'); throw new InvalidConfigException('The mcrypt PHP extension is not installed.');
} }
$module = @mcrypt_module_open('rijndael-256', '', MCRYPT_MODE_CBC, ''); // AES uses a 128-bit block size
$module = @mcrypt_module_open('rijndael-128', '', MCRYPT_MODE_CBC, '');
if ($module === false) { if ($module === false) {
throw new Exception('Failed to initialize the mcrypt module.'); throw new Exception('Failed to initialize the mcrypt module.');
} }

Loading…
Cancel
Save