Шифрование данных паролем
Допустим у нас есть данные:
$data = 'My secret data!';
И мы хотим зашифровать их, чтобы позже расшифровать с использованием пароля, например такого:
$password = '1234';
Но открытый пароль мы не будем передавать, а создадим на его основе ключ с помощью хеширования и передадим его.
$key = sha1($password);
Рекомендуется использовать для шифрования библиотеку OpenSSL: openssl_encrypt()
, openssl_decrypt()
и вспомогательные функции.
Для начала нужно выбрать метод шифрования, например, aes-128-cbc
. Все доступные методы можно посмотреть вызвав функцию openssl_get_cipher_methods()
.
$method = 'aes-128-cbc';
Теперь нам нужно создать вектор инициализации (IV, Initialization Vector) - случайные данные, на основе которых будет произведено шифрование.