PHP Класс lithium\storage\session\strategy\Encrypt
To use this class, you need to have the
mcrypt extension enabled.
Example configuration:
{{{
Session::config(array('default' => array(
'adapter' => 'Cookie',
'strategies' => array('Encrypt' => array('secret' => 'foobar'))
)));
}}}
By default, this strategy uses the AES algorithm in the CBC mode. This means that an
initialization vector has to be generated and transported with the payload data. This
is done transparently, but you may want to keep this in mind (the ECB mode doesn't require
an itialization vector but is not recommended to use as it's insecure). You can override this
defaults by passing a different
cipher and/or
mode to the config like this:
{{{
Session::config(array('default' => array(
'adapter' => 'Cookie',
'strategies' => array('Encrypt' => array(
'cipher' => MCRYPT_RIJNDAEL_128,
'mode' => MCRYPT_MODE_ECB, // Don't use ECB when you don't have to!
'secret' => 'foobar'
))
)));
}}}
Please keep in mind that it is generally not a good idea to store sensitive information in
cookies (or generally on the client side) and this class is no exception to the rule. It allows
you to store client side data in a more secure way, but 100% security can't be achieved.
Показать файл
Открыть проект
Примеры использования класса
Защищенные свойства (Protected)
Свойство |
Тип |
Описание |
|
$_defaults |
|
Default configuration. |
|
$_resource |
|
Holds the crypto resource after initialization. |
|
$_vector |
|
Holds the initialization vector. |
|
Открытые методы
Защищенные методы
Описание методов
__construct()
публичный Метод
__destruct()
публичный Метод
Destructor. Closes the crypto resource when it is no longer needed.
_decrypt()
защищенный Метод
Decrypt and unserialize a previously encrypted string.
_encrypt()
защищенный Метод
Serialize and encrypt a given data array.
protected _encrypt ( array $decrypted = [] ) : string |
$decrypted |
array |
The cleartext data to be encrypted. |
Результат |
string |
A Base64 encoded and encrypted string. |
_hashSecret()
защищенный Метод
This method figures out the appropriate key size for the chosen encryption algorithm and
then hashes the given key accordingly. Note that if the key has already the needed length,
it is considered to be hashed (secure) already and is therefore not hashed again. This lets
you change the hashing method in your own code if you like.
The default MCRYPT_RIJNDAEL_128 key should be 32 byte long sha256 is used as the hashing
algorithm. If the key size is shorter than the one generated by sha256, the first n bytes
will be used.
_vector()
защищенный статический Метод
Generates an initialization vector.
_vectorSize()
защищенный статический Метод
Returns the vector size vor a given cipher and mode.
Delete encryption method.
public delete ( mixed $data, array $options = [] ) : string |
$data |
mixed |
The data to be encrypted. |
$options |
array |
Options for this method. |
Результат |
string |
Returns the deleted data in cleartext. |
enabled()
публичный статический Метод
Determines if the Mcrypt extension has been installed.
public read ( array $data, array $options = [] ) : mixed |
$data |
array |
the Data being read. |
$options |
array |
Options for this method. |
Результат |
mixed |
Returns the decrypted key or the dataset. |
public write ( mixed $data, array $options = [] ) : string |
$data |
mixed |
The data to be encrypted. |
$options |
array |
Options for this method. |
Результат |
string |
Returns the written data in cleartext. |
Описание свойств
$_defaults защищенное свойство
$_resource защищенное статическое свойство
Holds the crypto resource after initialization.
protected static $_resource |
$_vector защищенное статическое свойство
Holds the initialization vector.
protected static $_vector |