PHP crypt () Funktion
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
参数 | 描述 |
---|---|
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:
// 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):
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