Php/docs/function.openssl-get-cipher-methods

提供:Dev Guides
< Php
移動先:案内検索

openssl_get_cipher_methods

(PHP 5 >= 5.3.0, PHP 7)

openssl_get_cipher_methods利用可能な暗号メソッドを取得


説明

openssl_get_cipher_methods ([ bool $aliases = false ] ) : array

利用可能な暗号メソッドの一覧を取得します。


パラメータ

aliases
返される array に暗号のエイリアスを含めるべき場合、 true に設定します


返り値

利用可能な暗号メソッドの array


例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
)

参考