PHP
加密 | Cryptography

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 )