openssl genrsa -des3 -out private_rsa.pem 2048
openssl rsa -in private_rsa.pem -outform PEM -pubout -out public_rsa.pem
class SomeClass
{
#region PROPERTIES
protected static $public_key;
protected static $private_key;
const KEY_PASSPHRASE = 'key_passphrase';
#endregion
#region PUBLIC METHODS
public function __construct()
{
$keys_dir = dirname(__FILE__) . '/../keys/encrypt/';
$public_key_path = realpath($keys_dir . 'public_rsa.pem');
$private_key_path = realpath($keys_dir . 'private_rsa.pem');
self::$public_key = file_get_contents($public_key_path);
self::$private_key = file_get_contents($private_key_path);
}
public function encode($data)
{
if (is_numeric($data) === false || is_string($data) === false) {
$data = JSON::encode($data);
}
$encrypted = null;
if (openssl_public_encrypt($data, $encrypted, self::$public_key)) {
$encrypted = base64_encode($encrypted);
} else {
throw new Exception('Не удалось зашифровать данные. ' . openssl_error_string());
}
return $encrypted;
}
public function decode($data)
{
$decrypted = null;
openssl_private_decrypt(base64_decode($data), $decrypted, openssl_pkey_get_private(self::$private_key, self::KEY_PASSPHRASE));
return $decrypted;
}
#endregion
}
plugins: [
new CopyWebpackPlugin([
{
context: path.resolve(__dirname),
from: './src/styles/bootstrap-theme/bootswatch.less',
to: path.resolve(__dirname, './node_modules/bootstrap/less/bootswatch.less'),
},
{
context: path.resolve(__dirname),
from: './src/styles/bootstrap-theme/variables.less',
to: path.resolve(__dirname, './node_modules/bootstrap/less/variables.less'),
},
],
{
//debug: 'debug'
})
]
Внимание Текущая реализация session_regenerate_id() не работает хорошо с сетями с нестабильным соединением, такими как мобильные и WiFi сети. Таким образом, есть вероятность потерять сессиию из-за вызова session_regenerate_id().
RenderField(this.AddPart, 1)
$arResult['MORE_PHOTO'] = array_merge(array('SRC'=>$arResult['DETAIL_PICTURE']), $arResult['MORE_PHOTO']);