|
АутентификацияОбсуждение темы Аутентификация в разделе HTML, CSS, JavaScript, часть категории ВЕБ-ПРОГРАММИРОВАНИЕ; crypt - одностороннее шифрование строк (хэширование). Описание string crypt (string str [, string salt]) crypt() возвратит шифрованную строку с использованием стандартного алгоритма шифрования ... |
|
Опции темы |
06.08.2003, 09:04 | #1 |
|
crypt - одностороннее шифрование строк (хэширование).
Описание string crypt (string str [, string salt]) crypt() возвратит шифрованную строку с использованием стандартного алгоритма шифрования Unix на базе DES или альтернативных алгоритмов, которые могут быть доступны в данной системе. Аргументами является шифруемая строка и необязательная строка salt как база шифрования. См. Unix man-страницу для вашей crypt-функции. Если аргумент salt не предоставлен, он будет произвольно сгенерирован PHP. Некоторые ОС поддерживают более одного типа шифрования. На практике иногда стандартное DES-шифрование заменяется алгоритмом на базе MD5. Тип шифрования переключается аргументом salt. Во время установки PHP определяет возможности crypt-функции и будет принимать salts для других типов шифрования. Если salt не предоставлен, PHP будет автоматически генерировать стандартный двухсимвольный salt по умолчанию, если только тип шифрования по умолчанию в системе не MD5 - тогда генерируется произвольный MD5-совместимый salt. PHP устанавливает константу CRYPT_SALT_LENGTH, которая сообщает вам, применяется ли для вашей системы обычный двухсимвольный salt или более длинный 12-символьный salt. Если вы используете предоставляемый salt, вы должны убедиться, что этот salt генерируется один раз. Если вы вызываете эту функцию рекурсивно, это может повлиять и на вид, и на безопасность. Стандартная шифровка crypt() на базе DES возвращает salt как первые два символа вывода. Она также использует лишь первые восемь символов из str, поэтому строки большей длины, начинающиеся теми же самыми восемью символами, сгенерируют тот же результат (когда используется тот же salt). В системах, где функция crypt() поддерживает несколько типов шифрования, следующие константы устанавливаются в значения 0 или 1, в зависимости от того, доступен ли данный тип: CRYPT_STD_DES - стандартное шифрование на базе DES с двухсимвольным salt CRYPT_EXT_DES - расширенное шифрование на базе DES с девятисимвольным salt CRYPT_MD5 - шифрование MD5 с 12-символьным salt, начиная с $1$ CRYPT_BLOWFISH - Blowfish-шифрование с 16-символьным salt, начиная с $2$ Примечание: отсутствует функция дешифрования, поскольку crypt() использует однопутный алгоритм. Пример 1. crypt() <?php $password = crypt("My1sTpassword"); # сгенерируем salt # Вы должны передавать все результаты работы crypt() как salt для сравнения # пароля, чтобы исключить проблемы при использовании разных алгоритмов шифрования. (Как # сказано выше, стандартное хэширование пароля на базе DES использует 2-символьный salt, # но хэширование на базе MD5 использует 12-символьный.) if (crypt($user_input,$password) == $password) { echo "Password verified!"; } ?> Вывод наверное лучше использовать md5 |
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Аутентификация | vision | HTML, CSS, JavaScript | 0 | 05.08.2003 13:01 |
Реклама на форуме
Условия размещения рекламы
Биржа ссылок
Заработай на сайте!
|