Функции Язык программирования PHP

mdecrypt_generic

(PHP 4 >= 4.0.2)

mdecrypt_generic - эта функция дешифрует данные.

Описание

string mdecrypt_generic (resource td, string data)

Эта функция дешифрует данные. Обратите внимание, что длина возвращаемой строки может оказаться больше, чем длина нешифрованной, из-за заполнения данными.

Пример 1. mdecrypt_generic()
<?php 
/* Данные */ $key = 'this is a very long key, even too long for the cipher'; $plain_text 
= 'very important data'; /* Открывает модуль и создаёт IV */ $td = mcrypt_module_open 
('des', '', 'ecb', ''); $key = substr ($key, 0, mcrypt_enc_get_key_size ($td)); 
$iv_size = mcrypt_enc_get_iv_size ($td); $iv = mcrypt_create_iv ($iv_size, MCRYPT_RAND); 
/* Инициализирует дескриптор шифрования */ if (mcrypt_generic_init ($td, $key, 
$iv) != -1) { /* Шифрует данные */ $c_t = mcrypt_generic ($td, $plain_text); mcrypt_generic_deinit 
($td); /* Реинициализирует буферы для дешифрования */ mcrypt_generic_init ($td, 
$key, $iv); $p_t = mdecrypt_generic ($td, $c_t); /* Зачистка */ mcrypt_generic_deinit 
($td); mcrypt_module_close ($td); } if (strncmp ($p_t, $plain_text, strlen($plain_text)) 
== 0) { echo "ok\n"; } else { echo "error\n"; } ?>

В этом примере показано, как проверить, являются ли данные перед шифровкой теми же, что и после дешифровки. очень важно реинициализировать буфер шифрования функцией mcrypt_generic_init(), прежде чем вы попытаетесь дешифровать данные.

Дескриптор дешифровки должен всегда инициализироваться функцией mcrypt_generic_init() с ключом и IV до вызова этой функции. После выполнения шифрования вы должны освободить буферы шифрования вызовом mcrypt_generic_deinit(). См. пример в mcrypt_module_open().

См. также mcrypt_generic(), mcrypt_generic_init() и mcrypt_generic_deinit().


Назад Оглавление Вперёд
mcrypt_ofb Вверх Функции Mhash

Windows и PWS 4 или новее

При установке PHP под Windows с PWS 4 или более новой версией у вас есть две опции.
Одна - установить PHP CGI-бинарный, другая - использовать ISAPI-модуль/библиотеку DLL.

Если вы избрали CGI binary, сделайте следующее:

Если вы избрали ISAPI-модель, сделайте следующее: