mirror of
				https://github.com/yiisoft/yii2.git
				synced 2025-11-04 06:37:55 +08:00 
			
		
		
		
	Merge pull request #91 from ekerazha/patch-1
Use AES-192 for encryption
This commit is contained in:
		@ -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.');
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
		Reference in New Issue
	
	Block a user