PHP-классы шифрования / дешифрования - PullRequest
0 голосов
/ 09 октября 2011

Каков наилучший класс / функции шифрования / дешифрования, который может зашифровать массив данных или объектов и вернуть его в виде хеш сериализованной строки?

Затем, при дешифровании, сериализованныйстроки могут быть расшифрованы обратно в исходную форму значений, содержащих объекты или значения массива.

Спасибо

Ответы [ 2 ]

3 голосов
/ 09 октября 2011

Предисловие. Похоже, у вас есть представление о том, что хеширование некоторых данных аналогично шифрованию. Хеширование является НЕ шифрованием и не может быть отменено с помощью пароля или ключевого файла, как шифрование может.

PHP поставляется с несколькими протоколами хеширования, такими как md5 (md5_file), SHA1 (SHA1_file ). Все зависит от того, что вы делаете с этим хэшем и что вы хэшируете.

2 голосов
/ 09 октября 2011

В библиотеке mcrypt есть много функций, позволяющих выполнять шифрование любым возможным способом.Вот пример использования AES:

$secretKey = 'the longer, the better';
$originalString = 'some text here';

$iv_size = mcrypt_get_iv_size(MCRYPT_RIJNDAEL_256, MCRYPT_MODE_CBC);
$iv = mcrypt_create_iv($iv_size, MCRYPT_RAND);
$crypttext = mcrypt_encrypt(MCRYPT_RIJNDAEL_256, $secretKey, $originalString,
                              MCRYPT_MODE_CBC, $iv);
printf( "Original string: %s\n", $originalString );
// Returns "Original string: some text here"

printf( "Encrypted string: %s\n", $crypttext );
// Returns "Encrypted string: <gibberish>"

$decrypttext = mcrypt_decrypt(MCRYPT_RIJNDAEL_256, $secretKey, $crypttext,
                                MCRYPT_MODE_CBC, $iv);

// Drop nulls from end of string
$decrypttext = rtrim($decrypttext, "\0");

printf( "Decrypted string: %s\n", $decrypttext );
// Returns "Decrypted string: some text here"
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...