• Категории
  • Подписка
  • Разместить статью
12/07/10 19 6804 Безопасность скриптов
-

Шифрование строки на PHP

Mcrypt – это очень полезная функция PHP, у которой есть много алгоритмов шифрования. С ее помощью, при разработке сайтов (см. webstroy.com.ua), возникает возможность зашифровать и расшифровать данные – это называется двухстороннее шифрование. Для начала необходимо понять как данные могут быть зашифрованы и затем, с помощью расширения Mcrypt расшифрованы и тем самым приведены к первоначальному виду.

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

Mcrypt версии 2.4.7 поддерживает следующие алгоритмы шифрования: Blowfish, RC2, Safer-sk64 xtea, Cast-256, RC4, Safer-sk128, DES, RC4-iv, Serpent, Enigma, Rijndael-128, Threeway, Rijndael-192, TripleDES, LOKI97, Rijndael-256, Twofish, Panama, Saferplus и т.д.

< ? php
$string = "Это - последовательность, которая будет зашифрована";
$key = "Это - ключ";
//Алгоритм Шифрования
$alg = MCRYPT_RIJNDAEL_256;
//Создание вектора инициализации для дополнительной безопасности
$iv = mcrypt_create_iv (mcrypt_get_iv_size ($alg, MCRYPT_MODE_ECB), MCRYPT_RAND);
//Наша строка
print "Original string: $string
 
";
//Шифрование
$string $encrypted_string = mcrypt_encrypt ($alg, $key, $string, MCRYPT_MODE_CBC, $iv);
//Преобразованная в шестнадцатиричный вид строка
print "Encrypted string: ".bin2hex($encrypted_string)."
 
";
$decrypted_string = mcrypt_decrypt ($alg, $key, $encrypted_string, MCRYPT_MODE_CBC, $iv);
print "Decrypted string: $decrypted_string";
?>;

По установке библиотеки  Mcrypt (см. www.php.net) можно почитать на официальном сайте PHP. При наличии серверного мульти-пакета WAMP (PHP 5, Apache, MySQL), необходимости установки mcrypt нет, только включить и все.

Чтобы узнать какой алгоритм mcrypt поддерживается в операционной системе, используется mcrypt_list_algorithms (), алгоритм является первым аргументом в mcrypt_encrypt / mcrypt_dencrypt функциях.

Четвертым аргументом в mcrypt_encrypt / mcrypt_dencrypt является MCRYPT_MODE_CBC способ для шифрования или декодирования – чтобы вернуть список поддержанных способов используется mcrypt_list_modes ().

Источник инфо: http://php-mysql.develop.sitefrost.com/blog/2010/02/13/two-way-encryption/


19 комментариев на «“Шифрование строки на PHP”»

  1. Как раз задумывался о вопросе шифрования. Интересный материал Спасибо!

  2. Однозначно код себе на заметку! Спасибо автору.

  3. NULL:

    Случайно не подскажете, ГОСТовский какой алгоритм шифрования?

  4. Полезный код, буду теперь пользовать, спс))))

  5. действительно довольно просто и примитивно, но зато работает. Спасибо за код

  6. хммм, интересно! что то новенькое для меня!

  7. Не ожидал такого от ПХП,очень понравилось)

Добавить комментарий

Яндекс.Метрика