30 $ivlen = openssl_cipher_iv_length($cipher =
"AES-128-CBC");
31 $iv = openssl_random_pseudo_bytes($ivlen);
32 $ciphertext_raw = openssl_encrypt($id, $cipher,
Env::$e->SYSTEM_SECRET_KEY, $options = OPENSSL_RAW_DATA, $iv);
33 $hmac = hash_hmac(
'sha256', $ciphertext_raw,
Env::$e->SYSTEM_SECRET_KEY, $as_binary =
true);
34 $ciphertext = base64_encode($iv . $hmac . $ciphertext_raw);
47 $c = base64_decode($hash);
48 $ivlen = openssl_cipher_iv_length($cipher =
"AES-128-CBC");
49 $iv = substr($c, 0, $ivlen);
50 $hmac = substr($c, $ivlen, $sha2len = 32);
51 $ciphertext_raw = substr($c, $ivlen + $sha2len);
52 $plaintext = openssl_decrypt($ciphertext_raw, $cipher,
Env::$e->SYSTEM_SECRET_KEY, $options = OPENSSL_RAW_DATA, $iv);
53 $calcmac = hash_hmac(
'sha256', $ciphertext_raw,
Env::$e->SYSTEM_SECRET_KEY, $as_binary =
true);
54 if (hash_equals($hmac, $calcmac)) {
55 return intval($plaintext);
Crypt отвечает за шифрование и расшифровку идентификатора пользователя
Env класс управляющий, добавляющий или записывающий переменные среды