openssl_get_cipher_methods

(PHP 5 >= 5.3.0)

openssl_get_cipher_methodsGets available cipher methods

Описание

array openssl_get_cipher_methods ([ bool $aliases = false ] )

Gets a list of available cipher methods.

Список параметров

aliases

Set to TRUE if cipher aliases should be included within the returned array.

Возвращаемые значения

An array of available cipher methods.

Примеры

Пример #1 openssl_get_cipher_methods() example

Shows how the available ciphers might look, and also which aliases might be available.

<?php
$ciphers             
openssl_get_cipher_methods();
$ciphers_and_aliases openssl_get_cipher_methods(true);
$cipher_aliases      array_diff($ciphers_and_aliases$ciphers);

print_r($ciphers);

print_r($cipher_aliases);

?>

Результатом выполнения данного примера будет что-то подобное:

Array
(
    [0] => AES-128-CBC
    [1] => AES-128-CFB
    [2] => AES-128-CFB1
    [3] => AES-128-CFB8
    [4] => AES-128-ECB
    [5] => AES-128-OFB
    [6] => AES-192-CBC
    [7] => AES-192-CFB
    [8] => AES-192-CFB1
    [9] => AES-192-CFB8
    [10] => AES-192-ECB
    [11] => AES-192-OFB
    [12] => AES-256-CBC
    [13] => AES-256-CFB
    [14] => AES-256-CFB1
    [15] => AES-256-CFB8
    [16] => AES-256-ECB
    [17] => AES-256-OFB
    [18] => BF-CBC
    [19] => BF-CFB
    [20] => BF-ECB
    [21] => BF-OFB
    [22] => CAST5-CBC
    [23] => CAST5-CFB
    [24] => CAST5-ECB
    [25] => CAST5-OFB
    [26] => DES-CBC
    [27] => DES-CFB
    [28] => DES-CFB1
    [29] => DES-CFB8
    [30] => DES-ECB
    [31] => DES-EDE
    [32] => DES-EDE-CBC
    [33] => DES-EDE-CFB
    [34] => DES-EDE-OFB
    [35] => DES-EDE3
    [36] => DES-EDE3-CBC
    [37] => DES-EDE3-CFB
    [38] => DES-EDE3-OFB
    [39] => DES-OFB
    [40] => DESX-CBC
    [41] => IDEA-CBC
    [42] => IDEA-CFB
    [43] => IDEA-ECB
    [44] => IDEA-OFB
    [45] => RC2-40-CBC
    [46] => RC2-64-CBC
    [47] => RC2-CBC
    [48] => RC2-CFB
    [49] => RC2-ECB
    [50] => RC2-OFB
    [51] => RC4
    [52] => RC4-40
    [53] => aes-128-cbc
    [54] => aes-128-cfb
    [55] => aes-128-cfb1
    [56] => aes-128-cfb8
    [57] => aes-128-ecb
    [58] => aes-128-ofb
    [59] => aes-192-cbc
    [60] => aes-192-cfb
    [61] => aes-192-cfb1
    [62] => aes-192-cfb8
    [63] => aes-192-ecb
    [64] => aes-192-ofb
    [65] => aes-256-cbc
    [66] => aes-256-cfb
    [67] => aes-256-cfb1
    [68] => aes-256-cfb8
    [69] => aes-256-ecb
    [70] => aes-256-ofb
    [71] => bf-cbc
    [72] => bf-cfb
    [73] => bf-ecb
    [74] => bf-ofb
    [75] => cast5-cbc
    [76] => cast5-cfb
    [77] => cast5-ecb
    [78] => cast5-ofb
    [79] => des-cbc
    [80] => des-cfb
    [81] => des-cfb1
    [82] => des-cfb8
    [83] => des-ecb
    [84] => des-ede
    [85] => des-ede-cbc
    [86] => des-ede-cfb
    [87] => des-ede-ofb
    [88] => des-ede3
    [89] => des-ede3-cbc
    [90] => des-ede3-cfb
    [91] => des-ede3-ofb
    [92] => des-ofb
    [93] => desx-cbc
    [94] => idea-cbc
    [95] => idea-cfb
    [96] => idea-ecb
    [97] => idea-ofb
    [98] => rc2-40-cbc
    [99] => rc2-64-cbc
    [100] => rc2-cbc
    [101] => rc2-cfb
    [102] => rc2-ecb
    [103] => rc2-ofb
    [104] => rc4
    [105] => rc4-40
)
Array
(
    [18] => AES128
    [19] => AES192
    [20] => AES256
    [21] => BF
    [26] => CAST
    [27] => CAST-cbc
    [32] => DES
    [47] => DES3
    [48] => DESX
    [50] => IDEA
    [55] => RC2
    [82] => aes128
    [83] => aes192
    [84] => aes256
    [85] => bf
    [90] => blowfish
    [91] => cast
    [92] => cast-cbc
    [97] => des
    [112] => des3
    [113] => desx
    [115] => idea
    [120] => rc2
)

Смотрите также

Коментарии

May be useful for cyphers execution speed.

<?php

const TEST_COUNT 100000;
const 
SOURCE 'Note that HTML tags are not allowed in the posts, but the note formatting is preserved.';
const 
KEY "password";

function 
TESTER$testing_function$argument )
{
   
$t microtime(true);

    for (
$test_iterator 0$test_iterator TEST_COUNT$test_iterator++) {
       
$testing_function$argument );
    }
    return 
round(microtime(true) - $t4);
}

$crypt = function($cipher) {
   
$ivlen openssl_cipher_iv_length($cipher);
   
$iv openssl_random_pseudo_bytes($ivlen);
   
openssl_encrypt(SOURCE$cipherKEY$options=0$iv);
};

$methods openssl_get_cipher_methods(false);

array_splice$methods0count($methods) / 2);

$timings = array();

foreach (
$methods as $cypher) {
   
$time TESTER$crypt$cypher );
   
$timings$cypher ] = $time;
    echo 
str_pad($cypher40' 'STR_PAD_LEFT), " have time  "str_pad($time8STR_PAD_LEFT), ' seconds. 'PHP_EOL;
}

uasort($timings, function($a$b){
    return 
$a <=> $b;
});

$min_time round(reset($timings) / TEST_COUNT7);
$min_cypher key($timings);

$max_time round(end($timings) / TEST_COUNT7);
$max_cypher key($timings);

echo 
'-------------'PHP_EOL;
echo 
"Total tests: "count($timings), PHP_EOL;
echo 
"Max timing : {$max_time} seconds for `{$max_cypher}` algorithm."PHP_EOL;
echo 
"Min timing : {$min_time} seconds for `{$min_cypher}` algorithm."PHP_EOL;

echo 
'Details: 'PHP_EOL;

foreach (
$timings as $m => $t) {
    echo 
'- 'str_pad($t8STR_PAD_LEFT), " seconds for `{$m}`"PHP_EOL;
}

echo 
PHP_EOL;
2017-09-21 02:29:01
http://php5.kiev.ua/manual/ru/function.openssl-get-cipher-methods.html
Автор:
With OpenSSL 1.1.1 this no longer returns the uppercase variants of the name, i.e. `AES-256-CBC` no longer exists but `aes-256-cbc` does.

https://github.com/oerdnj/deb.sury.org/issues/990
2018-11-08 15:29:22
http://php5.kiev.ua/manual/ru/function.openssl-get-cipher-methods.html

    Поддержать сайт на родительском проекте КГБ