The return value is a length in bytes. (Not bits, or anything else.)
(PHP 5 >= 5.3.3, PHP 7, PHP 8)
openssl_cipher_iv_length — Obtener la longitud del iv de cipher
Obtiene la longitud del vector de inicialización (iv) de cipher.
method
El método de cipher, véase openssl_get_cipher_methods() para una lista de valores potenciales.
Devuelve la longitud de cipher en caso de éxito, o false
en caso de error.
Emite un error de nivel E_WARNING
cuando el algoritimo de cipher
es desconocido.
Ejemplo #1 Ejemplo de openssl_cipher_iv_length()
<?php
$método = 'AES-128-CBC';
$longitud_iv = openssl_cipher_iv_length($método);
echo $longitud_iv;
?>
El resultado del ejemplo sería algo similar a:
16
<?php
$ciphers = openssl_get_cipher_methods();
//ECB mode should be avoided
$ciphers = array_filter($ciphers, function ($n) {
return stripos($n, "ecb") === FALSE;
});
// At least as early as Aug 2016, Openssl declared the following weak: RC2, RC4, DES, 3DES, MD5 based
$ciphers = array_filter($ciphers, function ($c) {
return stripos($c, "des") === FALSE;
});
$ciphers = array_filter($ciphers, function ($c) {
return stripos($c, "rc2") === FALSE;
});
$ciphers = array_filter($ciphers, function ($c) {
return stripos($c, "rc4") === FALSE;
});
$ciphers = array_filter($ciphers, function ($c) {
return stripos($c, "md5") === FALSE;
});
if (is_array($ciphers)) {
foreach ($ciphers as $cipher) {
echo $cipher.': ';
echo openssl_cipher_iv_length($cipher);
echo "<br>\n";
}
}
?>
Will be...
AES-xxx-xxx is 16
BF-xxx is 8
CAMELLIA-xxx is 16
CAST5-xxx is 8
IDEA-xxx is 8
SEED-xxx is 16
lower case:
aes-xxx-xxx are mixed between 16 and 12.
id-aes-xxx are mixed between 12 and 8.
The values above are tested with PHP 5.5 - 5.6 on Windows. In PHP 7.x is different than this.