PHP
PHP / MySql

Recherche
 
ManuelPHP.com

crc32
<<<
crypt echo
>>>

8.127 Chaînes de caractères (Strings)
8 Référence des fonctions
 Manuel PHP

Introduction
Pré-requis
Installation
Constantes pré-définies
Voir aussi
addcslashes
addslashes
bin2hex
chop
chr
chunk_split
convert_cyr_string
convert_uudecode
convert_uuencode
count_chars
crc32
->crypt
echo
explode
fprintf
get_html_translation_table
hebrev
hebrevc
html_entity_decode
htmlentities
htmlspecialchars_decode
htmlspecialchars
implode
join
levenshtein
localeconv
ltrim
md5_file
md5
metaphone
money_format
nl_langinfo
nl2br
number_format
ord
parse_str
print
printf
quoted_printable_decode
quotemeta
rtrim
setlocale
sha1_file
sha1
similar_text
soundex
sprintf
sscanf
str_ireplace
str_pad
str_repeat
str_replace
str_rot13
str_shuffle
str_split
str_word_count
strcasecmp
strchr
strcmp
strcoll
strcspn
strip_tags
stripcslashes
stripos
stripslashes
stristr
strlen
strnatcasecmp
strnatcmp
strncasecmp
strncmp
strpbrk
strpos
strrchr
strrev
strripos
strrpos
strspn
strstr
strtok
strtolower
strtoupper
strtr
substr_compare
substr_count
substr_replace
substr
trim
ucfirst
ucwords
vfprintf
vprintf
vsprintf
wordwrap

8.127.17 crypt()Chiffrage indéchiffrable (hashing)

[ Exemples avec crypt ]   PHP 3, PHP 4, PHP 5

string  crypt ( string   str , string   salt )

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

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

Certains systèmes supportent plus d'un type de chiffrement. En fait, il arrive que le chiffrement DES standard soit remplacé par un algorithme de chiffrement MD5. Le choix du type de chiffrement est effectué en se basant sur la valeur du salt . A l'installation, PHP détermine les possibilités de la fonction crypt , et acceptera des salt pour d'autres types de chiffrements. Si 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 utilisez le salt généré, pensez bien que le salt est généré une seule fois. Si vous appelez cette fonction plusieurs fois, 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 systèmes où crypt supporte plusieurs types de chiffrements, les constantes suivantes sont mises à 0 ou 1, suivant que le type correspondant est disponible :

  • CRYPT_STD_DES : chiffrement DES standard à 2 caractères
  • CRYPT_EXT_DES : chiffrement DES étendu à 9 caractères
  • CRYPT_MD5 : chiffrement MD5 à 12 caractères commençant par $1$
  • CRYPT_BLOWFISH : chiffrement Blowfish à 16 caractères commençant par $2$ ou $2a$ .
Note

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

Exemple avec crypt

<?php
// laissons le salt initialisé par PHP
$mot_de_passe = crypt("monmotdepasse");

/*
  Il vaut mieux passer le résultat complet de crypt() comme salt nécessaire
  pour le chiffrement du mot de passe, pour éviter les problèmes entre les
  algorithmes utilisés (comme nous le disons ci-dessus, le chiffrement
  standard DES utilise un salt de 2 caractè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!";
}
?>
Utilisation de crypt avec htpasswd

<?php
// Définition du mot de passe
$password = 'monmotdepasse';

// Récupération du hash, on laisse le salt se générer automatiquement
$hash = crypt($password);
?>
Utilisation de crypt avec différents types de cryptage

<?php
if (CRYPT_STD_DES == 1) {
    echo
'DES standard : ' . crypt('rasmuslerdorf', 'rl') . "\n";
}

if (
CRYPT_EXT_DES == 1) {
    echo
'DES étendu : ' . crypt('rasmuslerdorf', '_J9..rasm') . "\n";
}

if (
CRYPT_MD5 == 1) {
    echo
'MD5 :          ' . crypt('rasmuslerdorf', '$1$rasmusle$') . "\n";
}

if (
CRYPT_BLOWFISH == 1) {
    echo
'Blowfish :     ' . crypt('rasmuslerdorf', '$2a$07$rasmuslerd...........$') . "\n";
}
?>

Voir aussi md5 et l'extension Mcrypt .

<< crypt >>
crc32 Chaînes de caractères (Strings) echo





Google

Services webmasters

Les manuels
 

ManuelPHP.com © 2003-2012 Tigersun - Crédits
Webmaster Site Internet - Télécharger des Logiciels - Programme TV - Entraide Informatique - Agence de Communication
2018-08-20