La cryptographie et le PHP - MD5 VS SHA-256 
vendredi, 10 février 2006, 05:08 PM - PHP, Sécurité
La majorité des programmeurs utilisent l'algorithme MD5 pour encrypter des informations, dont entre autres les mots de passe dans les bases de données. Pourquoi? Surtout pour sa popularité et sa simplicité d'utilisation. Mais celui-ci est vulnérable depuis l'été 2004, donc pas assez sécuritaire pour un service qui se veut réellement sérieux.

<?php
  
// MD5 - Non sécure
  
$hash md5('mon mot de passe');
  echo 
$hash;
  
// Résultat: 28bbd531bd0b2d272233e703b1f38dba
?>


Quelle méthode utiliser? Le SHA-256.

Cet algorithme est aussi très simple à utiliser, vous n'avez qu'à inclure la classe sha256.class.php... cette classe est sous la license LGPL (et non pas GPL), il s'agit de la plus libre des licenses que je connaisse! Vous pouvez utiliser cette classe à peu près comme bon vous semble:

"Our General Public Licenses are designed to make sure that you have the freedom to distribute copies of free software (and charge for this service if you wish); that you receive source code or can get it if you want it; that you can change the software and use pieces of it in new free programs; and that you are informed that you can do these things."

Donc, comment l'utiliser?

Ajoutez le fichier sha256.class.php ( PHP4 et + ) parmi vos scripts et utilisez la classe SHA256 de cette façon:

<?php
  
// SHA256 - Sécure
  
include_once('sha256.class.php');
  
$hash SHA256::hash('mon mot de passe');
  echo 
$hash;
  
// Résultat: 
  // 3420b843f2ae7f47b7402f4fbe0e7698ca99797015ac27d00488a106f13e46db
?>


Si vous en voulez davantage, prenez le temps de lire les commentaires du script! Vous y découvrirez la possibilité d'obtenir facilement un output en binaire plutôt qu'en hexadécimal, et plusieurs fonctions pour tester l'encryption.

[ 5 commentaires ] ( ( 8760 vues ) )   |  [ 0 trackbacks ]   |  permalink