Новые книги

Рассказывается о ведущем поисковом ресурсе российской части Интернета — Яндексе. Описаны его сервисы для поиска документов и новостей, блогов и адресов, товаров и музыкальных произведений. Рассмотрены почтовый сервис и сервис для создания и размещения сайтов на Народ. ру. Читатель узнает о том, что такое "электронные деньги" и как с их помощью оплатить товар. Большое внимание уделяется общедоступным поисковым программам, которые Яндекс предлагает своим посетителям для поиска информации не только на сайтах, но и на своем компьютере. На компакт-диске находятся программы Яндекса, описанные в книге, и дополнительные материалы.

Для начинающих пользователей Интернета.
Тот факт, что умение работать на компьютере сегодня необходимо всем и каждому, не вызывает сомнений даже у скептиков.

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

Его последовательное изложение, а также подробное пошаговое описание ключевых операций и процедур превращают изучение данной книги в увлекательный процесс, результатом которого будет умение общаться на «ты» с любым современным компьютером.

Описание построено на примере системы Windows XP Professional.

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