crypt

crypt -- Chiffrage indéchiffrable (hashing)

Description

string crypt ( string str [, string salt])

crypt( ) retourne la chaîne str chiffrée avec l 'algorithme standard Unix DES , ou bien un des algorithme qui est disponible sur la machine . L ' argument optionnel salt sera utilisée comme base pour le chiffrement . Reportez vous aux pages de manuel Unix pour plus de détails sur votre fonction crypt .

Si l' argument salt n 'est pas fourni , PHP en générera un lui-même .

Certains systèmes supoprtent plus d ' un type de chiffrage . En fait , il arrive que le chiffrage DES standard soit remplacé par un algorithme de chiffrage MD5 . Le choix du type de chiffrage est effectué en se basant sur la valeur du salt . A l' installation , PHP détermine les possibitilités de la fonction crypt() , et acceptera des salt pour d 'autres types de chiffrages . Is aucun salt n' est fourni , PHP va en générer un de deux caractères , à moins que le système par défaut soit MD5 , auquel cas un salt Is aucun salt n 'est fourni , PHP va en générer un de deux caractères , à moins que le système par défaut soit MD5 , auquel cas un salt compatible MD5 sera généré . PHP définit une constante appelée CRYPT_SALT_LENGTH qui vous dira si un salt de deux caractères s' applique à votre système , ou bien si c 'est un salt de 12 caractères .

Si vous utiilsez le salt généré , pensez bien que le salt est généré une seule fois . Si vous appelez cette fonction récursivement , cela peut avoir des impacts sur la sécurité et l ' apparence du résultat .

crypt( ) , lorsqu 'elle est utilisée avec le chiffrement standard DES , retourne le salt dans les deux premiers caractères de la chaîne retournée . Elle n' utilise que les 8 premiers caractères de str , ce qui fait que toutes les chaînes plus longues , qui ont les mêmes premiers 8 octets retourneront le même résultat (tant que le salt est toujours le même ) .

Sur les sytèmes crypt( ) supporte plusieurs types de chiffrements , les constantes suivantes sont mises à 1 ou 0 , suivant que le type correspondant est disponible :

Il n' existe pas de fonction de déchiffrement , car la fonction crypt( ) utilise un algorithme à un seul sens (injection ) .

Exemple 1 . Exemple avec crypt( )

 
?php

 
$mot_de_passe

 
=

 
crypt(

 
"MonM0TdEPa

 
e")

 
;

 
/

 
/

 
laissons

 
le

 
salt

 
initialis

 
eacute

 
;

 
par

 
PHP

 
/

 
*

 
Il

 
vaut

 
mieux

 
passer

 
le

 
r

 
eacute;sultat

 
complet

 
de

 
crypt(

 
)

 
comme

 
salt

 
n

 
eacute;cessaire

 
pour

 
le

 
chiffrage

 
du

 
mot

 
de

 
passe

 
,

 
pour

 
eacute;viter

 
les

 
probl

 
egrave;mes

 
entre

 
les

 
algorithmes

 
utilis

 
eacute;s

 
(comme

 
nous

 
le

 
disons

 
ci-dessus

 
,

 
le

 
chiffrage

 
standard

 
DES

 
utilise

 
un

 
salt

 
de

 
2

 
caract

 
egrave;res

 
,

 
mais

 
un

 
chiffrement

 
MD5

 
utilise

 
un

 
salt

 
de

 
12

 
.

 
*

 
/

 
if

 
(crypt($utilisateur_input,$mot_de_passe_input

 
)

 
==

 
$mot_de_passe

 
)

 
{

 
echo

 
"Mot

 
de

 
passe

 
correct

 
!"

 
;

 
}

 
?



Voir aussi md5( ) et l 'extension Mcrypt .