ТОП-10 популярных



Для работы с вещественными числами в MySQL предусмотрено три типа данных - это типы FLOAT, DOUBLE, DECIMAL. Числовой тип FLOAT...

НОУТБУК с блестящим экраном
Eсли выпустившая ноутбук фирма предлагает его в качестве «замены настольному ПК», то это должно подразумевать под собой нечто большее, чем...

БОЛЬШЕ БОЛЬШИХ LCD-мониторов
Процесс вытеснения с рынка мониторов с электронно-лучевой трубкой (CRT) продолжается. О смещении акцентов в пользу LCD-мониторов теперь заявляют даже те...

Больше больших LCD-мониторов
Процесс вытеснения с рынка мониторов с электронно-лучевой трубкой (CRT) продолжается. О смещении акцентов в пользу LCD-мониторов теперь заявляют даже те...

Магнито-оптический дисковод DynaMO
Cейчас, когда традиционные флоппи-дисководы на долгие годы замерли в своем развитии, поиск альтернативных носителей продолжается, и ситуация, казалось бы, разрешилась...

Иди и пиши. TravelMate C100
Планшетный компьютер платформы Tablet PC обязан в первую очередь быть легким, способным достаточно долго работать без подзарядки батарей. Эти требования...

ПОД ЛИТЕРОЙ «N»
Aтаку LCD-мониторов не остановить, а масштабы этого наступления даже немного пугают. Судите сами — многие пользователи только начинают приглядываться к новому для...


Для длинных строк, т.е. строк длиннее 255 символов, в MySQL предусмотрены типы BLOB (Binary Large Object, большой двоичный объект) и...

Размер объему не помеха.
С тех пор как компания Fujitsu отказалась от производства жестких дисков для настольных компьютеров, многие пользователи начали забывать о том,...


Какую только информацию мы не помещаем на компакт-диски: резервные копии важных данных, музыку, фильмы... Многие полагают, что главное - «купить...

PHP. Кодирование и декодирование. Часть Четырнадцатая.


20-01-2015

string mcrypt_decrypt(string cipher, string key, string data, string mode, string iv)
Функция mcrypt_decrypt (листинг 12.65) предназначена для расшифровки данных. Аргументом cipher задается один из шифров, перечисленных в табл. 12.8. Аргумент key задает секретный ключ, используемый для расшифровки данных, заданных аргументом data. Аргументом mode задается один из режимов, указанных в табл. 12.9. Необязательный аргумент iv задает вектор инициализации, необходимый для некоторых алгоритмов и режимов.

Листинг 12.65. Функция mcrypt_decrypt

<?php
// задать тестовые данные
$message = "This message is sensitive."; $key = "secret"; //зашифровать сообщение
$code = @mcrypt_encrypt(MCRYPT_BLOWFISH, $key, $message,
MCRYPT_MODE_ECB); // распечатать расшифрованное сообщение print(@mcrypt_decrypt(MCRYPT_BLOWFISH, $key, $code,
MCRYPT_MODE_ECB));
?> 
string mcrypt_enc_get_algorithms_name(resource mcrypt)
Функция mcrypt_enc_get_algorithms_name возвращает название алгоритма, используемого открытым ресурсом. 
integer mcrypt_enc_get_block_size(resource mcrypt)
Функция mcrypt_enc_get_block_size предназначена для получения размера блока открытого ресурса.
integer mcrypt_enc_get_iv_size(resource mcrypt)
Функция mcrypt_enc_get_iv_size возвращает размер вектора инициализации, используемого открытым ресурсом.
integer mcrypt_enc_get_key_size(resource mcrypt)
Функция mcrypt_enc_get_key_size предназначена для определения максимального размера ключа, разрешенного открытым ресурсом.
string mcrypt_enc_get_modes_name(resource mcrypt)
Функция mcrypt_enc_get_modes_name предназначена для получения имени режима, используемого открытым ресурсом.
array mcrypt_enc_get_supported_key_sizes(resource mcrypt)
Функция mcrypt_enc_get_supported_key_sizes используется для получения массива, содержащего размеры, используемые открытым ресурсом.
boolean mcrypt_enc_is_block_algorithm(resource mcrypt)
Функция mcrypt_enc_is_block_algorithm используется для проверки работы с блочными шифрами алгоритма открытого ресурса.
boolean mcrypt_enc_is_block_algorithm_mode(resource mcrypt)
Функция mcrypt_enc_is_block_algorithm_mode используется для проверки поддержки используемым данным ресурсом режима работы с блочными шифрами.
boolean mcrypt_enc_is_block_mode(resource mcrypt)
Функция mcrypt_enc_is_block_mode предназначена для проверки наличия блочного вывода режимом, используемым заданным ресурсом.
boolean mcrypt_enc_self_test(resource mcrypt)
Функция mcrypt_enc_self_test предназначена для проверки алгоритма, используемого открытым ресурсом.
string mcrypt_encrypt(string cipher, string key, string data, string mode, string iv)
Функция mcrypt_encrypt предназначена для шифрования данных. Аргументом cipher задается один из шифров, перечисленных в табл. 12.8. Аргумент key является секретным ключом, предназначенным для кодирования данных, переданных аргументом data. Аргумент mode должен иметь одно из значений, представленных в табл. 12.9. Необязательный аргумент iv является вектором инициализации для некоторых алгоритмов и режимов.
Кодирование и декодирование
Кодирование и декодирование
string string mcrypt_generic(resource mcrypt, string data)
Функция mcrypt_generic (листинг 12.66) предназначена для шифрования данных. Для соблюдения принципа кратности длины данных размеру блока она дополняет избыточные данные символами NULL. Перед использованием функции необходимо инициализировать ресурс с помощью функции mcrypt_generic_init.

| Листинг 12.66. Функция mcrypt_generic_
<?php
$message = "This message is sensitive."; // открыть шифр
$mcrypt = mcrypt_module_open(MCRYPT_3DES, NULL,
MCRYPT_MODE_ECB, NULL); //создать вектор инициализации
$iv = mcrypt_create_iv(mcrypt_enc_get_iv_size($mcrypt),
MCRYPT_DEV_RANDOM); //создать ключ; для того чтобы ключ был достаточно длинным, необходимо использовать md5
$key = substr(md5('secret'), 0, mcrypt_enc_get_key_size($mcrypt)); // инициализация шифровки
mcrypt_generic_init($mcrypt, $key, $iv); // зашифровать
$code = mcrypt_generic($mcrypt, $message); // очистить
mcrypt_generic_deinit($mcrypt); // инициализация расшифровки mcrypt_generic_init($mcrypt, $key, $iv); // расшифровать
print(mdecrypt_generic($mcrypt, $code)); // очистить
mcrypt_generic_deinit($mcrypt); // закрыть модуль mcrypt_module_close($mcrypt);
?>

boolean mcrypt_generic_deinit(resource mcrypt)
Функция mcrypt_generic_deinit используется для освобождения памяти, отведенной под ресурс mcrypt, созданный функцией mcrypt_generic_init.
integer mcrypt_generic_init(resource mcrypt, string key, string iv)
Функция mcrypt_generic_init предназначена для инициализации ресурса с помощью ключа и вектора инициализации, после чего можно вызывать функции mcrypt_generic или mdecrypt_generic.
integer mcrypt_get_block_size(integer algorithm)
Функция mcrypt_get_block_size используется для определения размера блока для заданного алгоритма шифрования. При этом используется одна из констант, приведенных в табл. 12.8. 
string mcrypt_get_cipher_name(integer algorithm)
Функция mcrypt_get_cipher_name используется для определения имени режима шифрования. При этом используется одна из констант, приведенных в табл. 12.8.

Понравился материал? Поделитесь с друзьями!



<< Предыдущая статьяСледующая статья >>
PHP. Кодирование и декодирование. Часть Триннадцатая. PHP. Кодирование и декодирование. Часть Пятнадцатая.