openssl_get_cipher_methods
openssl_get_cipher_methods($aliases = false)
Zwraca tablicę z nazwami szyfrów, które biblioteka OpenSSL obsługuje na serwerze (aes-256-gcm, chacha20-poly1305…). Przydaje się do sprawdzenia, czy szyfr potrzebny w kodzie jest dostępny.
Parametry
- $aliases – true = łącznie z innymi nazwami tego samego szyfru (wielkimi literami itd.).
Przykłady
$ciphers = openssl_get_cipher_methods();
var_dump(in_array("aes-256-gcm", $ciphers, true)); // bool(true)
var_dump(in_array("chacha20-poly1305", $ciphers, true)); // bool(true)
echo OPENSSL_VERSION_NUMBER >= 0x30000000 ? "OpenSSL 3" : "OpenSSL 1.1";
Na co uważać
- OpenSSL 3 domyślnie nie ma starych szyfrów (Blowfish
bf-cbc, DES, RC4) – kod, który ich używał, po aktualizacji serwera przestanie odszyfrowywać. Przenieś dane na AES, póki stary serwer jeszcze działa. - Lista zależy od wersji OpenSSL na serwerze – wynik na komputerze lokalnym i na hostingu nie musi być taki sam.
Powiązane funkcje:
openssl_encrypt()
openssl_cipher_iv_length()
in_array()