Latest web development tutorials
×

PHP kurs

PHP kurs PHP krótkie wprowadzenie PHP zainstalować PHP gramatyka PHP zmienna PHP echo/print PHP Typy danych PHP stały PHP sznur PHP operatorzy PHP If...Else PHP Switch PHP szyk PHP Sortowanie tablicy PHP superglobalne PHP While krążenie PHP For krążenie PHP funkcja PHP Magiczne Zmienne PHP Przestrzenie nazw PHP Obiektowe

PHP forma

PHP forma PHP Uwierzytelnianie za pomocą formularzy PHP forma - wymagane pola PHP forma - Weryfikacja e-mail i adres URL PHP Kompletna wystąpienie formularza PHP $_GET zmienna PHP $_POST zmienna

PHP zaawansowane Tutorial

PHP Tablice wielowymiarowe PHP data PHP zawierać PHP plik PHP Prześlij plik PHP Cookie PHP Session PHP E-mail PHP bezpieczeństwo E-mail PHP Error PHP Exception PHP filtr PHP Filtr zaawansowany PHP JSON

PHP 7 Nowe funkcje

PHP 7 Nowe funkcje

PHP baza danych

PHP MySQL krótkie wprowadzenie PHP MySQL połączenie PHP MySQL Tworzenie bazy danych PHP MySQL Tworzenie tabeli danych PHP MySQL Należy wprowadzić dane PHP MySQL Wstawić wiele danych PHP MySQL Przygotowane sprawozdania PHP MySQL odczytać dane 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 krótkie wprowadzenie AJAX PHP AJAX baza danych AJAX XML AJAX Wyszukiwanie w czasie rzeczywistym AJAX RSS Reader AJAX głosowanie

PHP Reference Manual

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 Przetwarzanie obrazu PHP RESTful

PHP krypta function ()

PHP referencyjny String PHP referencyjny String

Definicja i Wykorzystanie

crypt () zwraca stosowanie DES, Blowfish lub algorytm MD5 do szyfrowania ciąg.

Na różnych systemach operacyjnych, różne zachowania funkcji, niektóre systemy operacyjne obsługują więcej niż jeden typ algorytmu. Podczas instalacji PHP będzie sprawdzić, co jest dostępne i co algorytm algorytm.

Dokładne algorytmy polegać na formie i długość argumentów soli. Sól może szyfrowania bezpieczniejsze zwiększając liczbę od konkretnego łańcucha ze szczególnym sposobie szyfrowania, generuje się ciąg.

Oto kilka stałych i crypt () jest używane z. Stała wartość jest ustawiona na instalację przez PHP.

Stała:

  • [CRYPT_SALT_LENGTH] - domyślnie długość szyfrowania. Używając standardowego szyfrowania DES, długość 2
  • [CRYPT_STD_DES] - szyfrowanie DES oparte na standardzie soli 2-znakowego alfabetu, od "./0-9A-Za-z". Nieprawidłowe znaki w soli doprowadzi do funkcji nie powiodło się.
  • [CRYPT_EXT_DES] - Rozszerzony szyfrowanie DES oparte mają solnych 9 znaków przez podkreśleniem tyłu z 4 bajtów liczby iteracji i 4 bajty składu soli. Są one kodowane jako druku znaków, każdy z 6 najmniej znaczącego charakteru jako pierwszy. 0-63 Wartość jest zakodowana jako "./0-9A-Za-z". Nieprawidłowe znaki w soli doprowadzi do funkcji nie powiodło się.
  • [CRYPT_MD5] - szyfrowanie MD5 mają Salt 12 znaków, począwszy od $ 1 $.
  • [CRYPT_BLOWFISH] - szyfrowanie Blowfish ma $ 2a $, 2x $ $ lub $ 2y $ początek sól, parametr kosztów dwucyfrowy, "$", jak również z alfabetu "./0-9A-Za-z" 22 znaków. Użyj innych niż litery alfabetu spowoduje funkcja zwraca ciąg znaków 0. "$" Parametr jest podstawą 2 logarytm liczby iteracji algorytmu Blowfish mieszania powinna być w zakresie 04-31. Wartości poza tym zakresem doprowadzi do funkcji nie powiodło się.
  • [CRYPT_SHA_256] - szyfrowanie SHA-256 ma SALT 16 znaków, począwszy od $ 5 $. Jeśli łańcuch sól "rund = <n> $" rozpoczyna się, wartość cyfrowa N razy hash używany do wskazania pętli jest wykonywany, który jest podobny do parametru kosztów Blowfish. Domyślna liczba cykli wynosi 5000, wartość minimalna to 1000, maksymalna wynosi 999.999.999. N jest dowolna wartość spoza tego zakresu będą konwertowane do najbliższej wartości granicznej.
  • [CRYPT_SHA_512] - szyfrowanie SHA-512 ma SALT 16 znaków, począwszy od $ 6 $. Jeśli łańcuch sól "rund = <n> $" rozpoczyna się, wartość cyfrowa N razy hash używany do wskazania pętli jest wykonywany, który jest podobny do parametru kosztów Blowfish. Domyślna liczba cykli wynosi 5000, wartość minimalna to 1000, maksymalna wynosi 999.999.999. N jest dowolna wartość spoza tego zakresu będą konwertowane do najbliższej wartości granicznej.

Na Funkcja ta obsługuje systemu wielu algorytmów, jeśli jest obsługiwana wyżej stała jest ustawiony na "1", w przeciwnym razie jest on ustawiony na "0"

Uwaga: Nie maco odpowiada funkcji deszyfrowania. crypt () Funkcja ta wykorzystuje algorytm jednokierunkową.


gramatyka

crypt( str,salt )

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

dane techniczne

Zwraca: Zwraca zaszyfrowany ciąg, jeżeli nie zwróci mniej niż 13 i nie więcej gwarancja ciągu różni się od soli.
Wersja PHP: 4+
dziennika aktualizacji: W PHP 5.3.7, dodać $ 2x dolarów i 2Y tryby $ Blowfish obsłużyć wysoki potencjalny atak.

W PHP 5.3.2, dodać stałą SHA-256 i SHA-512.

Od PHP 5.3.2 roku, Blowfish w nieprawidłowym pętli powróci "awarii" ciąg ( "* 0" lub "* 1"), a nie z powrotem do DES.

Począwszy od PHP 5.3.0, PHP wyposażony szyfrowania MD5 osiągnąć, osiągnięcie standardu DES, Blowfish oraz DES rozszerzony algorytm do osiągnięcia. Jeśli system nie obsługuje algorytmy te wykorzysta własny algorytm PHP.


Przykłady

Przykład 1

W tym przykładzie będziemy testować różne algorytmy:

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

Powyższy kod wyprowadza następująco (w zależności od systemu operacyjnego):

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 referencyjny String PHP referencyjny String