Latest web development tutorials
×

PHP cours

PHP cours PHP Brève introduction PHP installer PHP grammaire PHP variable PHP echo/print PHP Types de données PHP constante PHP chaîne PHP opérateurs PHP If...Else PHP Switch PHP tableau PHP Tri d'un tableau PHP Superglobales PHP While circulation PHP For circulation PHP fonction PHP Variables magiques PHP Namespaces PHP Object-Oriented

PHP forme

PHP forme PHP Authentification Forms PHP forme - Les champs obligatoires PHP forme - email de vérification et d'URL PHP Complète instance de formulaire PHP $_GET variable PHP $_POST variable

PHP Tutorial avancée

PHP Les tableaux multidimensionnels PHP date PHP contenir PHP fichier PHP File Upload PHP Cookie PHP Session PHP E-mail PHP sécurité E-mail PHP Error PHP Exception PHP filtre PHP filtre avancé PHP JSON

PHP 7 Nouvelles fonctionnalités

PHP 7 Nouvelles fonctionnalités

PHP Base de données

PHP MySQL Brève introduction PHP MySQL raccordement PHP MySQL La création d'une base de données PHP MySQL Créer une table de données PHP MySQL Insérer des données PHP MySQL Insérez des données multiples PHP MySQL Déclarations préparées PHP MySQL Lire les données 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 Brève introduction AJAX PHP AJAX Base de données AJAX XML AJAX Recherche en temps réel AJAX RSS Reader AJAX vote

PHP Manuel de référence

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 Traitement de l'image PHP RESTful

fonction PHP crypt ()

PHP Chaîne de référence PHP Chaîne de référence

Définition et utilisation

crypt () renvoie l'utilisation de DES, Blowfish, ou algorithme MD5 pour chiffrer une chaîne.

Sur les systèmes d'exploitation différents, un comportement différent de la fonction, certains systèmes d'exploitation prennent en charge plus d'un type d'algorithme. Lors de l'installation, PHP va vérifier ce qui est disponible et ce que l'algorithme de l'algorithme.

Les algorithmes exacts reposent sur le format et la longueur de l'argument de sel. sel peut rendre le chiffrement plus sûr en augmentant le nombre par une chaîne particulière avec une méthode de cryptage spécifique pour générer la chaîne.

Voici quelques constantes et fonction crypt () est utilisée avec. La valeur constante est fixé à l'installation par le PHP.

Constant:

  • [CRYPT_SALT_LENGTH] - par défaut longueur de cryptage. L'utilisation du cryptage standard DES, une longueur de 2
  • [CRYPT_STD_DES] - chiffrement DES basé sur une norme de sel de 2 caractères, de l'alphabet "./0-9A-Za-z". Caractères non valides dans le sel va conduire à la fonction a échoué.
  • [CRYPT_EXT_DES] - Extended chiffrement basé sur-DES ont sel 9 caractères par un trait de soulignement derrière avec 4 octets de nombre d'itérations et 4 octets de composition de sel. Ceux-ci sont codés comme des caractères imprimables, chacun des 6, le caractère le moins significatif en premier. 0-63 valeur est codé comme "./0-9A-Za-z". Caractères non valides dans le sel va conduire à la fonction a échoué.
  • [CRYPT_MD5] - chiffrement MD5 ont sel 12 caractères, en commençant par $ 1 $.
  • [Crypt_blowfish] - le chiffrement Blowfish a $ 2a $, 2x $ ou 2y $ $ début de sel, un paramètre de coût à deux chiffres, "$", ainsi que de l'alphabet "./0-9A-Za-z" 22 caractères. Utiliser autre que les caractères de l'alphabet va déclencher la fonction retourne une chaîne de 0 de. "$" Paramètre est le logarithme en base 2 du nombre d'itérations algorithme de hachage Blowfish doit être dans la gamme 04-31. Les valeurs en dehors de cette plage conduiront à la fonction a échoué.
  • [CRYPT_SHA_256] - cryptage SHA-256 a sel 16 caractères, en commençant par 5 $ $. Si la chaîne de sel "tours = <N> $" démarre, la valeur numérique de N fois le hachage utilisé pour indiquer la boucle est exécutée, qui est similaire au paramètre de coût Blowfish. Le nombre par défaut de cycles est de 5000, la valeur minimale est de 1000, le maximum est 999.999.999. N est une valeur en dehors de cette plage sera convertie à la valeur limite la plus proche.
  • [CRYPT_SHA_512] - cryptage SHA-512 a sel 16 caractères, en commençant par $ 6 $. Si la chaîne de sel "tours = <N> $" démarre, la valeur numérique de N fois le hachage utilisé pour indiquer la boucle est exécutée, qui est similaire au paramètre de coût Blowfish. Le nombre par défaut de cycles est de 5000, la valeur minimale est de 1000, le maximum est 999.999.999. N est une valeur en dehors de cette plage sera convertie à la valeur limite la plus proche.

Sur Cette fonction prend en charge le système de multiples algorithmes, si supporté au-dessus constant est réglé sur "1", sinon il est réglé sur "0"

Note: Il n'y apas de fonction de déchiffrement correspondante. fonction crypt () utilise un algorithme à sens unique.


grammaire

crypt( str,salt )

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

détails techniques

Retours: Retours chiffrés chaîne, si elle ne parvient pas à revenir à moins de 13 caractères et une garantie de la chaîne est différent du sel.
PHP version: 4+
Mise à jour de journal: En PHP 5.3.7, ajouter les 2x $ $ et 2y $ modes $ Blowfish pour gérer haute attaque potentielle.

En PHP 5.3.2, ajouter le SHA-256 constante et SHA-512.

Depuis PHP 5.3.2 partir, Blowfish dans une boucle non valide sera de retour "échec" string ( "* 0" ou "1 *"), plutôt que de revenir au DES.

A partir de PHP 5.3.0, PHP est livré avec le cryptage MD5 pour atteindre, atteindre la norme DES, Blowfish et étendu algorithme DES à atteindre. Si le système ne prend pas en charge ces algorithmes utilisent propre algorithme de PHP.


Exemples

exemple 1

Dans cet exemple, nous allons tester différents algorithmes:

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

Le code ci-dessus génère les éléments suivants (en fonction du système d'exploitation):

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 Chaîne de référence PHP Chaîne de référence