Commit d81288f6 by Qiang Xue

Merge pull request #91 from ekerazha/patch-1

Use AES-192 for encryption
parents 6166e70f 14781584
...@@ -42,7 +42,8 @@ class SecurityHelper ...@@ -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 ...@@ -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 ...@@ -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', '', '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.');
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment