Новые книги

Эта книга поможет быстро освоить новую версию дистрибутива Linux Fedora 8. В ней рассказывается, как установить Fedora 8 и выполнить базовую настройку системы после установки, организовать подключение к Интернету, настроить и использовать браузер Firefox, брандмауэр, загрузчик GRUB. Подробно объясняется, как установить и настроить менеджер пакетов, а также работать с ним, антивирусом, офисным пакетом ОреnOffiсе 2.3, cредствами мультимедиа и другим программным обеспечением. Обсуждается, как настроить работу видеокарты, монитора, периферийных устройств (принтера, сканера), подключить, к системе второй монитор или телевизор.
Авторы этой книги, практики с пятнадцатилетним стажем, разработали простую, понятную, а главное – проверенную схему построения стратегии, адаптированную к российскому бизнесу. Они предлагают читателю эффективный инструмент для формирования и описания конкурентных преимуществ, а также пошаговый алгоритм разработки стратегии – от формирования первичных ожиданий собственников до создания финального документа. В книге предложен ряд практических инструментов, помогающих реализовать этот алгоритм.

crypt

Учебник РНР
НазадВперёд

crypt

(PHP 3, PHP 4)

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() и расширение Mcrypt.


Назад ОглавлениеВперёд
crc32Вверх echo