Browse Source

Merge pull request #91 from ekerazha/patch-1

Use AES-192 for encryption
tags/2.0.0-beta
Qiang Xue 12 years ago
parent
commit
d81288f614
  1. 11
      framework/helpers/base/SecurityHelper.php

11
framework/helpers/base/SecurityHelper.php

@ -42,7 +42,8 @@ class SecurityHelper
public static function encrypt($data, $key)
{
$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();
$iv = mcrypt_create_iv(mcrypt_enc_get_iv_size($module), MCRYPT_RAND);
mcrypt_generic_init($module, $key, $iv);
@ -63,7 +64,8 @@ class SecurityHelper
public static function decrypt($data, $key)
{
$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);
$iv = StringHelper::substr($data, 0, $ivSize);
mcrypt_generic_init($module, $key, $iv);
@ -148,7 +150,8 @@ class SecurityHelper
if (!extension_loaded('mcrypt')) {
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) {
throw new Exception('Failed to initialize the mcrypt module.');
}
@ -269,4 +272,4 @@ class SecurityHelper
$salt .= str_replace('+', '.', substr(base64_encode($rand), 0, 22));
return $salt;
}
}
}

Loading…
Cancel
Save