openssl_get_cipher_methods
openssl_get_cipher_methods
(PHP 5 >= 5.3.0, PHP 7)
openssl_get_cipher_methods — 获取可用的密码方法
描述
array openssl_get_cipher_methods ([ bool $aliases = false ] )
获取可用密码方法的列表。
参数
aliases
TRUE
如果密码别名应该包含在返回的数组中,则设置为。
返回值
一系列可用的密码方法。
例子
示例#1 openssl_get_cipher_methods()示例
显示可用密码的外观,以及可用的别名。
<?php
$ciphers = openssl_get_cipher_methods(
$ciphers_and_aliases = openssl_get_cipher_methods(true
$cipher_aliases = array_diff($ciphers_and_aliases, $ciphers
//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; }
$cipher_aliases = array_filter($cipher_aliases,function($c) { return stripos($c,"des")===FALSE; }
$cipher_aliases = array_filter($cipher_aliases,function($c) { return stripos($c,"rc2")===FALSE; }
print_r($ciphers
print_r($cipher_aliases
?>
上面的例子会输出类似于:
Array
(
[0] => AES-128-CBC
[1] => AES-128-CFB
[2] => AES-128-CFB1
[3] => AES-128-CFB8
[5] => AES-128-OFB
[6] => AES-192-CBC
[7] => AES-192-CFB
[8] => AES-192-CFB1
[9] => AES-192-CFB8
[11] => AES-192-OFB
[12] => AES-256-CBC
[13] => AES-256-CFB
[14] => AES-256-CFB1
[15] => AES-256-CFB8
[17] => AES-256-OFB
[18] => BF-CBC
[19] => BF-CFB
[21] => BF-OFB
[22] => CAST5-CBC
[23] => CAST5-CFB
[25] => CAST5-OFB
[41] => IDEA-CBC
[42] => IDEA-CFB
[44] => IDEA-OFB
[53] => aes-128-cbc
[54] => aes-128-cfb
[55] => aes-128-cfb1
[56] => aes-128-cfb8
[58] => aes-128-ofb
[59] => aes-192-cbc
[60] => aes-192-cfb
[61] => aes-192-cfb1
[62] => aes-192-cfb8
[64] => aes-192-ofb
[65] => aes-256-cbc
[66] => aes-256-cfb
[67] => aes-256-cfb1
[68] => aes-256-cfb8
[70] => aes-256-ofb
[71] => bf-cbc
[72] => bf-cfb
[74] => bf-ofb
[75] => cast5-cbc
[76] => cast5-cfb
[78] => cast5-ofb
[94] => idea-cbc
[95] => idea-cfb
[97] => idea-ofb
)
Array
(
[18] => AES128
[19] => AES192
[20] => AES256
[21] => BF
[26] => CAST
[27] => CAST-cbc
[50] => IDEA
[82] => aes128
[83] => aes192
[84] => aes256
[85] => bf
[90] => blowfish
[91] => cast
[92] => cast-cbc
[115] => idea
)