PHP.mk документација

crypt

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

function.crypt.php PHP.net прокси Преводот се освежува
Оригинал на PHP.net
Патека function.crypt.php Локална патека за оваа страница.
Извор php.net/manual/en Оригиналниот HTML се реупотребува и локално се стилизира.
Режим Прокси + превод во позадина Кодовите, табелите и белешките остануваат читливи во истиот тек.
crypt

Референца за `function.crypt.php` со подобрена типографија и навигација.

function.crypt.php

crypt

(PHP 4, PHP 5, PHP 7, PHP 8)

cryptЕднонасочно хеширање на низи

Ги ескејпува специјалните знаци во стринг за употреба во SQL изјава

Оваа функција (сè уште) не е безбедна за бинарни податоци!

= NULL

crypt() ќе врати хеширана низа користејќи го стандардниот Unix DES-базиран алгоритам или алтернативни алгоритми. password_verify() е компатибилен со crypt(). Затоа, хешовите на лозинките создадени од crypt() може да се користат со password_verify().

Пред PHP 8.0.0, salt параметарот беше опционален. Сепак, crypt() создава слаб хеш без salt, и крева E_NOTICE грешка без него. Осигурете се да специфицирате доволно силен солт за подобра безбедност.

password_hash() користи силен хеш, генерира силен солт и автоматски применува соодветни рунди. password_hash() е едноставен crypt() обвивка и компатибилен со постоечки хешови на лозинки. Употребата на password_hash() се охрабрува.

Типот на хеш се активира со аргументот солт. Ако не е обезбеден солт, PHP автоматски ќе генерира солт со два знака (DES) или солт со дванаесет знаци (MD5), во зависност од достапноста на MD5 crypt(). PHP поставува константа наречена CRYPT_SALT_LENGTH , која го означува најдолгиот валиден солт дозволен од достапните хешови.

Стандардниот базиран на DES crypt() го враќа солта како првите два знака од излезот. Исто така користи само првите осум знака од string, така што подолгите низи што започнуваат со истите осум знаци ќе генерираат ист резултат (кога се користи иста сол).

Поддржани се следните типови на хеширање:

  • CRYPT_STD_DES - Стандардно хеширање базирано на DES со двокарактерна сол од азбуката "./0-9A-Za-z". Користењето невалидни знаци во солот ќе предизвика crypt() да откаже.
  • CRYPT_EXT_DES - Продолжено хеширање базирано на DES. "Солта" е низа од 9 знаци што се состои од подвлекување проследено со 4 знаци за бројот на итерации и 4 знаци за солта. Секоја од овие 4-карактерни низи кодира 24 бита, со најмалку значајниот знак прв. Вредностите 0 to 63 се кодираат како ./0-9A-Za-z. Користењето невалидни знаци во солот ќе предизвика crypt() да откаже.
  • CRYPT_MD5 - MD5 hashing with a twelve character salt starting with $1$
  • CRYPT_BLOWFISH - Blowfish hashing with a salt as follows: "$2a$", "$2x$" or "$2y$", a two digit cost parameter, "$", and 22 characters from the alphabet "./0-9A-Za-z". Using characters outside of this range in the salt will cause crypt() to return a zero-length string. The two digit cost parameter is the base-2 logarithm of the iteration count for the underlying Blowfish-based hashing algorithm and must be in range 04-31, values outside this range will cause crypt() to fail. "$2x$" hashes are potentially weak; "$2a$" hashes are compatible and mitigate this weakness. For new hashes, "$2y$" should be used.
  • CRYPT_SHA256 - SHA-256 hash with a sixteen character salt prefixed with $5$. If the salt string starts with 'rounds=<N>$', the numeric value of N is used to indicate how many times the hashing loop should be executed, much like the cost parameter on Blowfish. The default number of rounds is 5000, there is a minimum of 1000 and a maximum of 999,999,999. Any selection of N outside this range will be truncated to the nearest limit.
  • CRYPT_SHA512 - SHA-512 hash with a sixteen character salt prefixed with $6$. If the salt string starts with 'rounds=<N>$', the numeric value of N is used to indicate how many times the hashing loop should be executed, much like the cost parameter on Blowfish. The default number of rounds is 5000, there is a minimum of 1000 and a maximum of 999,999,999. Any selection of N outside this range will be truncated to the nearest limit.

Параметри

string

Низата што треба да се хешира.

Безбедност: стандардниот сет на знаци

Користејќи го CRYPT_BLOWFISH алгоритам, ќе резултира со тоа string параметарот да биде скратен на максимална должина од 72 бајти.

salt

Низа за сол заснована на хеширањето. Ако не е обезбедена, однесувањето е дефинирано од имплементацијата на алгоритмот и може да доведе до неочекувани резултати.

Вратени вредности

Враќа хеширана низа или низа што е пократка од 13 знаци и е загарантирано дека се разликува од солта при неуспех.

Ги ескејпува специјалните знаци во стринг за употреба во SQL изјава

При валидација на лозинки, треба да се користи функција за споредба на низи што не е ранлива на напади со време за споредба на излезот од crypt() со претходно познатиот хеш. PHP обезбедува hash_equals() за оваа цел.

Дневник на промени

Верзија = NULL
8.0.0 На salt веќе не е опционално.

Примери

Пример #1 crypt() examples

<?php
$user_input
= 'rasmuslerdorf';
$hashed_password = '$6$rounds=1000000$NJy4rIPjpOaU$0ACEYGg/aKCY3v8O8AfyiO7CTfZQ8/W231Qfh2tRLmfdvFD6XfHk12u6hMr9cYIA4hnpjLNSTRtUwYr9km9Ij/';

// Validate an existing crypt() hash in a way that is compatible with non-PHP software.
if (hash_equals($hashed_password, crypt($user_input, $hashed_password))) {
echo
"Password verified!";
}
?>

Белешки

Забелешка: Не постои функција за декриптирање, бидејќи crypt() користи еднонасочен алгоритам.

Види Исто така

  • hash_equals() - Споредба на низи безбедна од напади со време
  • password_hash() - Создава хеш на лозинка
  • man страницата на Unix за вашата crypt функција за повеќе информации

Белешки од корисници

Нема белешки од корисници за оваа страница.
Навигација

Прелистувај сродни теми и функции.

На оваа страница

Автоматски outline од активната документација.

Насловите ќе се појават тука по вчитување.

Попрегледно читање

Примерите, changelog табелите и user notes се визуелно издвоени за да не се губат во долгата содржина.

Брз совет Користи го outline-от Скокни директно на главните секции од активната страница.
Извор Оригиналниот линк останува достапен Кога ти треба целосен upstream context, отвори го PHP.net во нов tab.