Рассмотри основные алгоритмы шифрования, а также применение функции crypt для создания хэш паролей в php скриптах .
Функция crypt() - возвращает хэшированную строку, полученную с помощью стандартного алгоритма DES, MD5 или любого другого, имеющегося в системе. Следует отметить, что функция расшифровки отсутствует, так как crypt() использует необратимый алгоритм хэширования.
Общий формат функции crypt: string crypt ( string $str [, string $salt ] )
где $str - Хэшируемая строка; $salt - Необязательный параметр, определяет вид хэширования. Если соль не указана, будет автоматически сгенерирована стандартная случайная двухсимвольная (DES) либо двенадцатисимвольная (MD5) соль, в зависимости от доступности алгоритма MD5 в crypt().
Алгоритмы хэширования (шифрования)
CRYPT_STD_DES - Стандартное DES-шифрование с двухсимвольной солью из алфавита "./0-9A-Za-z""./0-9A-Za-z".
CRYPT_EXT_DES - Расширенное DES-шифрование. "Соль" является девятисимвольной строкой, состоящей из символа подчеркивания, за которым следуют 4 байта счетчика итерации и 4 байта соли. Эти данные будут закодированы в виде печатаемых символов, 6 бит на символ, с меньшим значащим символом указанным первым. Значения от 0 до 63 кодируются как "./0-9A-Za-z".
CRYPT_MD5 - MD5-шифрование с 12-символьной солью, начинающейся с "$1$".
CRYPT_BLOWFISH - Blowfish-шифрование с 16-символьной salt, начинающейся с "$2$".
CRYPT_SHA256 - хэш SHA-256 с шестнадцатисимвольной солью, начинающейся с "$5$".
CRYPT_SHA512 - хэш SHA-512 с шестнадцатисимвольной солью, начинающейся с "$6$".
Скрипт php для создания хэша для htpasswd
При создании пароля для использования в файле .htpasswd Apache, нужно использовать 2 первых символа пароля в качестве salt. Для этого используем функцию substr, которая вернет два первых символа.
<?php // пароль $password = 'mypassword'; // получение хэша $hash = crypt($password, substr($password, 0, 2)); ?>
Вот и все. Теперь вы умеете генерить хэши для htpasswd Комментируем, подписываемся ну и всем пока:)
Компонент комментариев CComment