Метод в yii2 для обратимого шифрования, результат которого длинной не более 255? Для безопасной транзакции нужно зашифровать checkout id, чтобы его просто не подменили в url ответа. checkout id - integer. В Yii2 есть методы Yii::$app->getSecurity()->encryptByPassword(). Но получаемая строка длинная и bank gateway его не ест. Нужно значение не более 255 символов, которое можно обратить назад. Что посоветуете средствами Yii framework или просто функциями php?
Для обратимого шифрования значения checkout id до длины не более 255 символов, можно воспользоваться функцией base64_encode() для кодирования значения перед его шифрованием, а затем base64_decode() для декодирования обратно.
Пример кода:
$checkoutId = 12345; // пример значения checkout id // Кодирование значения с использованием base64_encode() $encodedCheckoutId = base64_encode($checkoutId); // Шифрование закодированного значения $encryptedCheckoutId = Yii::$app->getSecurity()->encryptByPassword($encodedCheckoutId, $encryptionKey); // Декодирование и получение исходного значения $decodedCheckoutId = base64_decode(Yii::$app->getSecurity()->decryptByPassword($encryptedCheckoutId, $encryptionKey)); echo $decodedCheckoutId; // Вывод исходного значения checkout id
При использовании данного подхода, результат шифрования будет иметь длину не более 255 символов, при этом вы сможете обратно получить исходное значение checkout id. Не забудьте указать $encryptionKey - пароль для шифрования и расшифрования данных.
Для обратимого шифрования значения checkout id до длины не более 255 символов, можно воспользоваться функцией base64_encode() для кодирования значения перед его шифрованием, а затем base64_decode() для декодирования обратно.
Пример кода:
$checkoutId = 12345; // пример значения checkout id// Кодирование значения с использованием base64_encode()
$encodedCheckoutId = base64_encode($checkoutId);
// Шифрование закодированного значения
$encryptedCheckoutId = Yii::$app->getSecurity()->encryptByPassword($encodedCheckoutId, $encryptionKey);
// Декодирование и получение исходного значения
$decodedCheckoutId = base64_decode(Yii::$app->getSecurity()->decryptByPassword($encryptedCheckoutId, $encryptionKey));
echo $decodedCheckoutId; // Вывод исходного значения checkout id
При использовании данного подхода, результат шифрования будет иметь длину не более 255 символов, при этом вы сможете обратно получить исходное значение checkout id. Не забудьте указать $encryptionKey - пароль для шифрования и расшифрования данных.