PHP handleiding

PHP TUIS PHP Inleiding PHP installeer PHP sintaksis PHP opmerkings PHP veranderlikes PHP Echo / Druk PHP datatipes PHP Strings PHP-nommers PHP Wiskunde PHP konstante PHP-operateurs PHP As...Anders...Elseif PHP skakelaar PHP-lusse PHP funksies PHP-skikkings PHP Superglobals PHP RegEx

PHP- vorms

PHP-vormhantering PHP-vorm validering PHP-vorm word vereis PHP-vorm URL/e-pos PHP-vorm voltooi

PHP Gevorderd

PHP datum en tyd PHP sluit in PHP-lêerhantering PHP-lêer oop/lees PHP-lêer skep/skryf PHP-lêer oplaai PHP-koekies PHP-sessies PHP filters PHP-filters Gevorderd PHP-terugbelfunksies PHP JSON PHP-uitsonderings

PHP OOP

PHP Wat is OOP PHP Klasse/Objekte PHP Konstrukteur PHP vernietiger PHP Toegangswysigers PHP erfenis PHP konstante PHP Abstrakte Klasse PHP-koppelvlakke PHP eienskappe PHP statiese metodes PHP Statiese Eienskappe PHP naamruimtes PHP Iterables

MySQL- databasis

MySQL-databasis MySQL Connect MySQL Skep DB MySQL Skep tabel MySQL Voeg data in MySQL Kry Laaste ID MySQL Voeg veelvuldige in MySQL voorberei MySQL Kies Data MySQL Waar MySQL Bestel deur MySQL verwyder data MySQL-opdateringsdata MySQL-limietdata

PHP XML

PHP XML-ontleders PHP SimpleXML-ontleder PHP SimpleXML - Kry PHP XML Expat PHP XML DOM

PHP - AJAX

AJAX Intro AJAX PHP AJAX-databasis AJAX XML AJAX Live Search AJAX-peiling

PHP voorbeelde

PHP voorbeelde PHP samesteller PHP vasvra PHP Oefeninge PHP-sertifikaat

PHP- verwysing

PHP Oorsig PHP Skikking PHP-kalender PHP datum PHP gids PHP fout PHP-uitsondering PHP lêerstelsel PHP filter PHP FTP PHP JSON PHP sleutelwoorde PHP Libxml PHP-pos PHP Wiskunde PHP Diverse PHP MySQLi PHP-netwerk PHP-uitsetbeheer PHP RegEx PHP SimpleXML PHP-stroom PHP-string PHP veranderlike hantering PHP XML-ontleder PHP zip PHP Tydsones

PHP crypt() Funksie


❮ PHP-stringverwysing

Definisie en gebruik

Die crypt()-funksie gee 'n hashed-string terug deur DES-, Blowfish- of MD5-algoritmes te gebruik.

Hierdie funksie tree anders op op verskillende bedryfstelsels. PHP kontroleer watter algoritmes beskikbaar is en watter algoritmes om te gebruik wanneer dit geïnstalleer is.

Die soutparameter is opsioneel. crypt() skep egter 'n swak wagwoord sonder die sout. Maak seker dat jy 'n sterk genoeg sout spesifiseer vir beter sekuriteit.

Daar is 'n paar konstantes wat saam met die crypt() funksie gebruik word. Die waarde van hierdie konstantes word deur PHP gestel wanneer dit geïnstalleer word.

Konstante:

  • [CRYPT_STD_DES] - Standaard DES-gebaseerde hash met twee karaktersout uit die alfabet "./0-9A-Za-z". Die gebruik van ongeldige karakters in die sout sal veroorsaak dat hierdie funksie misluk.
  • [CRYPT_EXT_DES] - Uitgebreide DES-gebaseerde hash met 'n nege karakter sout wat bestaan ​​uit 'n onderstreep gevolg deur 4 grepe van iterasie telling en 4 grepe sout. Dit word geënkodeer as drukbare karakters, 6 bisse per karakter, die minste betekenisvolle karakter eerste. Die waardes 0 tot 63 is geënkodeer as "./0-9A-Za-z". Die gebruik van ongeldige karakters in die sout sal veroorsaak dat die funksie misluk.
  • [CRYPT_MD5] - MD5 hashing met 'n 12 karakter sout wat begin met $1$
  • [CRYPT_BLOWFISH] - Blowfish hashing met 'n sout wat begin met $2a$, $2x$, of $2y$, 'n tweesyfer-kosteparameters "$", en 22 karakters uit die alfabet "./0-9A-Za-z" . Die gebruik van karakters buite die alfabet sal veroorsaak dat hierdie funksie 'n nul-lengte string terugstuur. Die "$"-parameter is die basis-2-logaritme van die iterasietelling vir die onderliggende Blowfish-bashed hashing-algoritme en moet in die reeks 04-31 wees. Waardes buite hierdie reeks sal veroorsaak dat die funksie misluk.
  • [CRYPT_SHA_256] - SHA-256 hash met 'n 16 karakter sout wat begin met $5$. As die soutstring met "rounds=<N>$" begin, word die numeriese waarde van N gebruik om aan te dui hoeveel keer die hashing-lus uitgevoer moet word, baie soos die kosteparameter op Blowfish. Die verstek aantal rondtes is 5000, daar is 'n minimum van 1000 en 'n maksimum van 999,999,999. Enige keuse van N buite hierdie reeks sal tot die naaste limiet afgekap word.
  • [CRYPT_SHA_512] - SHA-512 hash met 'n 16 karakter sout wat begin met $6$. As die soutstring met "rounds=<N>$" begin, word die numeriese waarde van N gebruik om aan te dui hoeveel keer die hashing-lus uitgevoer moet word, baie soos die kosteparameter op Blowfish. Die verstek aantal rondtes is 5000, daar is 'n minimum van 1000 en 'n maksimum van 999,999,999. Enige keuse van N buite hierdie reeks sal tot die naaste limiet afgekap word.

Op stelsels waar hierdie funksie veelvuldige algoritmes ondersteun, word die konstantes hierbo gestel op "1" indien ondersteun en "0" andersins.

Let wel: Daar is geen dekripteerfunksie nie. Die crypt()-funksie gebruik 'n eenrigtingalgoritme.


Sintaksis

crypt(str,salt)

Parameterwaardes

Parameter Description
str Required. Specifies the string to be hashed
salt Optional. A salt string to base the hashing on


Tegniese besonderhede

Terugkeerwaarde: Wys die geënkodeerde string of 'n string wat korter as 13 karakters is en is gewaarborg om van die sout te verskil by mislukking
PHP weergawe: 4+
Veranderinglog: PHP 5.6.0 - Wys 'n E_NOTICE sekuriteitswaarskuwing as sout weggelaat word.
PHP 5.3.7 - Bygevoeg $2x$ en $2y$ Blowfish-modusse.
PHP 5.3.2 - Bygevoeg SHA-256 en SHA-512. Vaste Blowfish-gedrag op ongeldige rondtes gee "mislukking"-string ("*0" of "*1") terug, in plaas daarvan om terug te val na DES.
PHP 5.3.0 - PHP bevat nou sy eie implementering vir MD5 crypt, Standard DES, Extended DES en die Blowfish algoritmes en sal dit gebruik as die stelsel nie ondersteuning vir een of meer van die algoritmes het nie.

Meer voorbeelde

Voorbeeld

In hierdie voorbeeld sal ons die verskillende algoritmes toets:

<?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 $6$. 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.";
}
?>

Die uitvoer van die kode hierbo kan wees (afhangende van die bedryfstelsel):

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-stringverwysing