Шифрование строки на 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/
Как раз задумывался о вопросе шифрования. Интересный материал Спасибо!
Однозначно код себе на заметку! Спасибо автору.
Случайно не подскажете, ГОСТовский какой алгоритм шифрования?
NULL:
Гуглите, там все есть….
Полезный код, буду теперь пользовать, спс))))
действительно довольно просто и примитивно, но зато работает. Спасибо за код
хммм, интересно! что то новенькое для меня!
Не ожидал такого от ПХП,очень понравилось)