Последние учебники веб-разработки
×

PHP Руководство

PHP ГЛАВНАЯ PHP вступление PHP устанавливать PHP Синтаксис PHP переменные PHP Echo / Версия для печати PHP Типы данных PHP Строки PHP Константы PHP операторы PHP If...Else...Elseif PHP Switch PHP В то время как Loops PHP Для Loops PHP функции PHP Массивы PHP Сортировка массивов PHP Суперглобальные

PHP обращение

PHP форма обращение PHP форма Проверка PHP форма необходимые PHP форма URL/E-mail PHP форма полный

PHP продвинутый

PHP Массивы Мульти PHP Дата и время PHP Включают PHP файл обращение PHP файл Открыть / Read PHP файл Создание / запись PHP файл Загрузить PHP Cookies PHP Sessions PHP фильтры PHP Filters продвинутый PHP Ошибка обращение PHP исключение

MySQL Database

MySQL База данных MySQL соединение MySQL Create DB MySQL Create Таблица MySQL Insert Data MySQL Получить Последняя ID MySQL Вставка нескольких MySQL Prepared MySQL Select Data MySQL Delete Data MySQL Update Data MySQL Limit Data

PHP - XML

PHP XML Парсеры PHP SimpleXML Parser PHP SimpleXML - Get PHP XML Expat PHP XML DOM

PHP - AJAX

AJAX вступление AJAX PHP AJAX База данных AJAX XML AJAX Live Search AJAX RSS Reader AJAX Голосование

PHP Examples

PHP Примеры PHP викторина PHP сертификат

PHP Справка

PHP массив PHP Календарь PHP Дата PHP каталог PHP Ошибка PHP Файловая система PHP Фильтр PHP FTP PHP HTTP PHP Libxml PHP почта PHP математический PHP Разное PHP MySQLi PHP SimpleXML PHP строка PHP XML PHP Zip PHP Часовые пояса

 

PHP crypt() Function


<String Reference PHP

Определение и использование

crypt() функция возвращает хэш строку , используя DES, Blowfish или MD5 алгоритмы.

Эта функция ведет себя по-разному на разных операционных системах. PHP проверяет, какие алгоритмы доступны и какие алгоритмы для использования при установке.

Параметр соль является необязательным. Тем не менее, crypt() создает слабый пароль без соли. Убедитесь в том, чтобы указать достаточно сильную соли для лучшей безопасности.

Есть некоторые константы, которые используются вместе с crypt() функции. Значение этих констант устанавливается PHP, когда он установлен.

Константы:

  • [CRYPT_STD_DES] - Стандарт DES на основе хэша с двумя символами соли из алфавита "./0-9A-Za-z" . Использование недопустимых символов в соли вызовет эту функцию, чтобы потерпеть неудачу.
  • [CRYPT_EXT_DES] - Extended хэш DES на основе с девяти символов соли в состоящей из подчеркивания с последующим 4 байта счетчика итерации и 4 байта соли. Они кодируются как печатаемые символы, 6 бит на символ, наименее значимый характер в первую очереди. Значения от 0 до 63 кодируются как "./0-9A-Za-z" . Использование недопустимых символов в соли вызовет функцию на провал.
  • [CRYPT_MD5] - MD5 хеширования с солью 12 символов, начиная с $ 1 $
  • [CRYPT_BLOWFISH] - Blowfish хеширования с солью , начиная с $ 2a $, $ 2x $ или $ 2Y $, два параметра цифры затрат "$" , и 22 символов из алфавита "./0-9A-Za-z" , Использование символов за пределами алфавита вызовет эту функцию, чтобы вернуть строку нулевой длины. "$" Параметр является базовым-2 логарифм подсчета итераций для базового Blowfish-колотил хэширования algorithmeter и должна быть в диапазоне 04-31. Значения вне этого диапазона вызовет функцию на провал.
  • [CRYPT_SHA_256] - SHA-256 хэш с солью 16 символов, начиная с $ 5 $. Если строка начинается с солью "rounds=<N>$" , числовое значение N используется , чтобы указать , сколько раз должен быть выполнен цикл хеширования, так же, как параметр затрат на Blowfish. Количество раундов по умолчанию 5000, есть минимум 1000 и максимум 999.999.999. Любой выбор N вне этого диапазона будет обрезан до ближайшего предела.
  • [CRYPT_SHA_512] - SHA-512 хэш с солью 16 символов, начиная с $ 6 $. Если строка начинается с солью "rounds=<N>$" , числовое значение N используется , чтобы указать , сколько раз должен быть выполнен цикл хеширования, так же, как параметр затрат на Blowfish. Количество раундов по умолчанию 5000, есть минимум 1000 и максимум 999.999.999. Любой выбор N вне этого диапазона будет обрезан до ближайшего предела.

В системах , где эта функция поддерживает несколько алгоритмов, приведенные выше константы устанавливаются в "1" , если поддерживается и "0" в противном случае.

Note: Там нет функции расшифровывать. crypt() функция использует алгоритм односторонней.


Синтаксис

crypt( str,salt )

параметр Описание
str Необходимые. Задает строку хэширования
salt Необязательный. Строка соли основывать на хеширования

Технические подробности

Возвращаемое значение: Возвращает закодированную строку или строку, которая короче, чем 13 символов и гарантированно отличаться от соли на провале
PHP версии: 4+
Changelog: $ 2x $ и $ 2y режимы $ Blowfish в PHP 5.3.7 были добавлены, чтобы иметь дело с потенциальными высокобитными атаками.

Константы SHA-256 и SHA-512 были добавлены в PHP 5.3.2.

По состоянию на PHP 5.3.2, Blowfish поведение на недействительных раундов возвращает "failure" строка ("*0" or "*1") , вместо того , чтобы откатиться к DES.

По состоянию на PHP 5.3.0, PHP содержит свою собственную реализацию склепе MD5, Standard DES, Extended DES и Blowfish алгоритмов и будет использовать, что если система не имеет поддержки одного или нескольких алгоритмов.

пример

Пример 1

В этом примере мы будем тестировать различные алгоритмы:

<?php
// 2 character salt
if (CRYPT_STD_DES == 1)
{
echo "Standard DES: ".crypt('something','st')."\n<br>";
}
else
{
echo "Standard DES not supported.\n<br>";
}

// 4 character salt
if (CRYPT_EXT_DES == 1)
{
echo "Extended DES: ".crypt('something','_S4..some')."\n<br>";
}
else
{
echo "Extended DES not supported.\n<br>";
}

// 12 character salt starting with $1$
if (CRYPT_MD5 == 1)
{
echo "MD5: ".crypt('something','$1$somethin$')."\n<br>";
}
else
{
echo "MD5 not supported.\n<br>";
}

// Salt starting with $2a$. The two digit cost parameter: 09. 22 characters
if (CRYPT_BLOWFISH == 1)
{
echo "Blowfish: ".crypt('something','$2a$09$anexamplestringforsalt$')."\n<br>";
}
else
{
echo "Blowfish DES not supported.\n<br>";
}

// 16 character salt starting with $5$. The default number of rounds is 5000.
if (CRYPT_SHA256 == 1)
{
echo "SHA-256: ".crypt('something','$5$rounds=5000$anexamplestringforsalt$')."\n<br>"; }
else
{
echo "SHA-256 not supported.\n<br>";
}

// 16 character salt starting with $5$. The default number of rounds is 5000.
if (CRYPT_SHA512 == 1)
{
echo "SHA-512: ".crypt('something','$6$rounds=5000$anexamplestringforsalt$');
}
else
{
echo "SHA-512 not supported.";
}
?>

Результат выполнения кода выше , может быть (depending on the operating system) в (depending on the operating system) :

Standard DES: stqAdD7zlbByI
Extended DES: _S4..someQXidlBpTUu6
MD5: $1$somethin$4NZKrUlY6r7K7.rdEOZ0w.
Blowfish: $2a$09$anexamplestringforsaleLouKejcjRlExmf1671qw3Khl49R3dfu
SHA-256: $5$rounds=5000$anexamplestringf$KIrctqsxo2wrPg5Ag/hs4jTi4PmoNKQUGWFXlVy9vu9
SHA-512: $6$rounds=5000$anexamplestringf$Oo0skOAdUFXkQxJpwzO05wgRHG0dhuaPBaOU/
oNbGpCEKlf/7oVM5wn6AN0w2vwUgA0O24oLzGQpp1XKI6LLQ0.


<String Reference PHP