Latest web development tutorials
×

PHP курс

PHP курс PHP Краткое введение PHP устанавливать PHP грамматика PHP переменная PHP echo/print PHP Типы данных PHP постоянная PHP строка PHP операторы PHP If...Else PHP Switch PHP массив PHP Сортировка массива PHP Суперглобальные PHP While циркуляция PHP For циркуляция PHP функция PHP Магические Переменные PHP Пространства имен PHP Объектно-ориентированный

PHP форма

PHP форма PHP Аутентификация с помощью форм PHP форма - Обязательные для заполнения поля PHP форма - Проверка электронной почты и URL PHP Полный экземпляр формы PHP $_GET переменная PHP $_POST переменная

PHP Расширенный учебник

PHP Многомерные Массивы PHP дата PHP содержать PHP файл PHP Загрузка файлов PHP Cookie PHP Session PHP E-mail PHP безопасности E-mail PHP Error PHP Exception PHP фильтр PHP Расширенный фильтр PHP JSON

PHP 7 Новые возможности

PHP 7 Новые возможности

PHP база данных

PHP MySQL Краткое введение PHP MySQL подключение PHP MySQL Создание базы данных PHP MySQL Создание таблицы данных PHP MySQL Вставка данных PHP MySQL Вставка нескольких данных PHP MySQL Подготовленные выражения PHP MySQL Считывание данных PHP MySQL WHERE PHP MySQL ORDER BY PHP MySQL UPDATE PHP MySQL DELETE PHP ODBC

PHP XML

XML Expat Parser XML DOM XML SimpleXML

PHP & AJAX

AJAX Краткое введение AJAX PHP AJAX база данных AJAX XML AJAX Поиск в реальном времени AJAX RSS Reader AJAX голосование

PHP справочное руководство

PHP Array PHP Calendar PHP cURL PHP Date PHP Directory PHP Error PHP Filesystem PHP Filter PHP FTP PHP HTTP PHP Libxml PHP Mail PHP Math PHP Misc PHP MySQLi PHP PDO PHP SimpleXML PHP String PHP XML PHP Zip PHP Timezones PHP обработка изображений PHP RESTful

Функция PHP склепа ()

PHP Строка Ссылка PHP Строка Ссылка

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

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

В различных операционных системах, различное поведение функции, некоторые операционные системы поддерживают более одного типа алгоритма. При установке, PHP проверит, что доступно и то, что алгоритм алгоритма.

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

Вот некоторые константы и склепа () функция используется с. Постоянное значение устанавливается при установке с помощью PHP.

Константа:

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

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

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


грамматика

crypt( str,salt )

参数 描述
str 必需。规定要编码的字符串。
salt 可选。用于增加被编码字符数目的字符串,以使编码更加安全。如果未提供 salt 参数,则每次调用该函数时会随机生成一个。

технические детали

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

В PHP 5.3.2, добавить постоянную SHA-256 и SHA-512.

Начиная с PHP 5.3.2 и далее, Blowfish в недопустимом цикле будет возвращать "провал" строку ( "* 0" или "* 1"), а не обратно DES.

Начиная с PHP 5.3.0, PHP поставляется с шифрованием MD5 для достижения, достижения стандартного DES, Blowfish и расширенный DES алгоритм для достижения. Если система не поддерживает эти алгоритмы будут использовать собственный алгоритм PHP.


примеров

Пример 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.";
}
?>

Приведенный выше код выводит следующее (в зависимости от операционной системы):

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.



PHP Строка Ссылка PHP Строка Ссылка