Нужно 'openssl_encrypt' внутри исправления класса - PullRequest
0 голосов
/ 02 марта 2019

Это простой класс с расшифровкой и шифрованием, приведенный ниже код не работает, как я могу это исправить?

class en{
    const cipher  = "aes-128-gcm";
    const key = "sitekey";

    function iv(){
        return openssl_random_pseudo_bytes(openssl_cipher_iv_length(self::cipher));
    }
    function encrypt($text,$iv){
        return openssl_encrypt($text, self::cipher, self::key, $options=0, $iv, $tag);
    }
    function decrypt($text,$iv){
        return openssl_decrypt($text, self::cipher, self::key, $options=0, $iv, $tag);
    }
}
$en = new en();

$iv = $en->iv();
$encrypted = $en->encrypt("message to be encrypted",$iv);
$decrypted = $en->decrypt($encrypted,$iv);
echo "iv: ".$iv."<br />";
echo "Encrypted: ".$encrypted."<br />";
echo "Decrypted: ".$decrypted."<br />";

1 Ответ

0 голосов
/ 02 марта 2019

При использовании функций openssl_encrypt и openssl_decrypt у вас есть переменная $ tag, которую вы передаете в качестве параметра.Но $ tag нигде не объявлен.

Если вы удалите 2 ссылки на $ tag и измените метод шифрования на

aes-128-cbc

Кодработы.

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