почему php openssl_encrypt возвращает пустую строку в модуле WordPress - PullRequest
0 голосов
/ 26 марта 2020

Мне нужно зашифровать некоторые данные в базе данных 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. но до сих пор нет результата. Теперь, что мне здесь не хватает?

Спасибо!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...