Мне нужно зашифровать некоторые данные в базе данных WordPress, поэтому мне нужно создать модуль для этого. До сих пор я не использовал шифрование, поэтому после такого исследования я придумал такой подход:
class ad_enc {
public $enc_key;
public function __construct($enc_key){
$this->enc_key = base64_decode($enc_key);
}
function encrypt($input) {
$encryption_key = $this->enc_key;
// Generate an initialization vector
$iv = openssl_random_pseudo_bytes(openssl_cipher_iv_length('aes-256-cbc'));
$encrypted = openssl_encrypt($input, 'aes-128-cbc', $encryption_key, 0, $iv);
return base64_encode($encrypted . '::' . $iv);
}
function decrypt($input) {
$encryption_key = $this->enc_key;
$data = base64_decode($input);
$data = explode('::', $data);
list($encrypted_data, $iv) = $data;
$decrypted = openssl_decrypt($encrypted_data, 'aes-128-cbc', $encryption_key, 0, $iv);
return $decrypted;
}
}
Метод шифрования работает, я могу использовать его и вставить в БД. Но метод расшифровки ничего не возвращает. Сначала я использовал aes-256-cb c и перешел на aes-128-cb c. но до сих пор нет результата. Теперь, что мне здесь не хватает?
Спасибо!