Latest web development tutorials
×

PHP Kurs

PHP Kurs PHP Kurze Einführung PHP installieren PHP Grammatik PHP Variable PHP echo/print PHP Datentypen PHP Konstante PHP Schnur PHP Die Betreiber PHP If...Else PHP Switch PHP Feld PHP Sortieren eines Array PHP Superglobals PHP While Verkehr PHP For Verkehr PHP Funktion PHP Magische Variablen PHP Namespaces PHP Objektorientiert

PHP Form

PHP Form PHP Formularauthentifizierung PHP Form - Erforderliche Felder PHP Form - Überprüfung E-Mail und URL PHP Komplette Formularinstanz PHP $_GET Variable PHP $_POST Variable

PHP Erweiterte Tutorial

PHP Mehrdimensionale Arrays PHP Datum PHP enthalten PHP Datei PHP Datei-Upload PHP Cookie PHP Session PHP E-mail PHP Sicherheit E-mail PHP Error PHP Exception PHP Filter PHP Erweiterte Filter PHP JSON

PHP 7 Neue Funktionen

PHP 7 Neue Funktionen

PHP Datenbank

PHP MySQL Kurze Einführung PHP MySQL Verbindung PHP MySQL Erstellen einer Datenbank PHP MySQL Erstellen Sie eine Datentabelle PHP MySQL einfügen von Daten PHP MySQL Legen Sie mehrere Daten PHP MySQL Prepared Statements PHP MySQL Lesen Sie Daten 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 Kurze Einführung AJAX PHP AJAX Datenbank AJAX XML AJAX Echtzeitsuche AJAX RSS Reader AJAX Abstimmung

PHP Referenzhandbuch

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 Bildverarbeitung PHP RESTful

PHP crypt () Funktion

PHP String Referenz PHP String Referenz

Definition und Verwendung

Funktion crypt () gibt die Verwendung von DES, Blowfish oder MD5-Algorithmus eine Zeichenfolge zu verschlüsseln.

Auf verschiedenen Betriebssystemen, unterschiedliche Verhalten der Funktion unterstützen einige Betriebssysteme mehr als eine Art von Algorithmus. Bei der Installation wird PHP zu überprüfen, was verfügbar ist und was der Algorithmus Algorithmus.

Die genauen Algorithmen beruhen auf das Format und die Länge des Salzes Argument. Salz kann die Verschlüsselung sicherer zu machen, indem die Anzahl von einer bestimmten Zeichenfolge mit einem bestimmten Verschlüsselungsmethode Erhöhung der Zeichenfolge zu generieren.

Hier sind einige Konstanten und crypt () Funktion wird verwendet, um mit. Der konstante Wert wird bei der Installation von PHP gesetzt.

Konstante:

  • [CRYPT_SALT_LENGTH] - Verschlüsselung Länge Default. Unter Verwendung von Standard-DES-Verschlüsselung, eine Länge von 2
  • [CRYPT_STD_DES] - DES-Verschlüsselung auf einem 2-Zeichen-Salt-Standard aus dem Alphabet "./0-9A-Za-z" basiert. Ungültige Zeichen in der Salz zu Funktion führen gescheitert.
  • [CRYPT_EXT_DES] - Erweiterte DES-Verschlüsselung Salz 9 Zeichen durch einen Unterstrich hinter mit 4 Byte Iterationszahlcode und 4 Byte Salzzusammensetzung haben. Diese werden als druckbare Zeichen codiert, die jeweils 6, am wenigsten signifikanten Charakter zuerst. 0-63 Wert wird als "./0-9A-Za-z" codiert. Ungültige Zeichen in der Salz zu Funktion führen gescheitert.
  • [CRYPT_MD5] - MD5-Verschlüsselung haben Salz 12 Zeichen, mit $ 1 $ beginnen.
  • [CRYPT_BLOWFISH] - Blowfish-Verschlüsselung hat ein $ 2a $, $ 2x $ oder 2j $ $ Anfang Salz, eine zweistellige Kostenparameter, "$", sowie aus dem Alphabet "./0-9A-Za-z" 22 Zeichen. Eine andere Verwendung als alphabetische Zeichen auslösen Funktion eine Reihe von 0-en zurückgibt. "$" Parameter ist Logarithmus zur Basis 2 der Anzahl von Iterationen Blowfish-Hashing-Algorithmus in dem 04-31 Bereich sein muss. Werte außerhalb dieses Bereichs führen zu Funktion ist fehlgeschlagen.
  • [CRYPT_SHA_256] - SHA-256-Verschlüsselung hat Salz 16 Zeichen, mit $ 5 $ beginnen. Wenn das Salz string "Runden = <N> $" beginnt, wird der Digitalwert des N - fachen der Hash verwendet , um die Schleife anzuzeigen , ausgeführt wird , was zur Kostenparameter Blowfish ähnlich ist. Die Standardanzahl der Zyklen ist 5000, der Minimalwert 1000 beträgt die maximale 999.999.999. N irgendein Wert außerhalb dieses Bereichs auf die nächste Grenze Wert umgewandelt wird.
  • [CRYPT_SHA_512] - SHA-512-Verschlüsselung hat Salz 16 Zeichen, mit $ $ 6 beginnen. Wenn das Salz string "Runden = <N> $" beginnt, wird der Digitalwert des N - fachen der Hash verwendet , um die Schleife anzuzeigen , ausgeführt wird , was zur Kostenparameter Blowfish ähnlich ist. Die Standardanzahl der Zyklen ist 5000, der Minimalwert 1000 beträgt die maximale 999.999.999. N irgendein Wert außerhalb dieses Bereichs auf die nächste Grenze Wert umgewandelt wird.

Auf dieser Funktion mehrere Algorithmen System unterstützt, über konstant unterstützt, wenn die Einstellung "1" gesetzt, andernfalls wird es auf "0"

Hinweis: Es gibtkeine entsprechende Entschlüsselungsfunktion. crypt () Funktion verwendet eine Einweg-Algorithmus.


Grammatik

crypt( str,salt )

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

Technische Details

Rückkehr: Returns verschlüsselten String, wenn es weniger als 13 Zeichen nicht zurückkehrt und eine Garantie für die Zeichenfolge unterscheidet sich von dem Salz.
PHP-Version: 4+
Update-Protokoll: In PHP 5.3.7, fügen Sie die $ 2x $ und 2j $ Modi $ Blowfish hohen möglichen Angriff zu behandeln.

In PHP 5.3.2, die Konstante SHA-256 und SHA-512 hinzuzufügen.

Seit PHP 5.3.2 ab, Blowfish in einer ungültigen Schleife zurückkehren wird "Versagen" string ( "* 0" oder "* 1"), anstatt wieder auf DES.

Ab PHP 5.3.0, kommt PHP mit MD5-Verschlüsselung zu erreichen, erreichen den Standard DES, Blowfish und erweitert DES-Algorithmus zu erreichen. Wenn das System diese Algorithmen nicht unterstützt wird PHP eigenen Algorithmus verwenden.


Beispiele

Beispiel 1

In diesem Beispiel werden wir verschiedene Algorithmen testen:

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

Der obige Code gibt die folgende (in Abhängigkeit von dem Betriebssystem):

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