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.

vendredi, 10 février 2006, 06:28 PM
md5 n'est definitevement plus secure !!!
http://md5.rednoize.com/

voici ce qui est recommender pour améliorer la securité:

<?php
// MD5 - Plus sécure
$salt = 'MYSALT';
$hash = md5 ($salt . md5('mon mot de passe' . $salt));
echo $hash;
// Résultat: 9a6c45ea8c5a0073794aeef334220a4f
?>

Farid A.




mardi, 14 février 2006, 01:54 PM
J'avoue qu'avec le "salt", le md5 est un peu plus utilisable!

samedi, 27 mai 2006, 01:33 PM
Merci !
Je vais utiliser le sha256 pour mon nouveau projet ;-)

vendredi, 13 juillet 2007, 01:53 PM
Bonjour,
Je viens de découvrir ce blog qui semble très bien fait d'ailleur mais une question m'interpelle:
La loi francaise (et presque européenne) n'interdit elle pas les cryptages supérieurs à 127 bits (128 toleré)?

Cette classe permet elle aussi de calculer le checsum d'un fichier?
merci de vos réponses, amicallement, sloshy

dimanche, 9 septembre 2007, 05:01 PM
Salut Sloshy,

Désolé pour cette réponse tardive. Je ne suis pas au courant des lois française, je suis du Canada - et je n'ai jamais entendu parlé de cela. J'aimerais bien en savoir plus!

Commentaires 

Ajouter Commentaire (désactivé)

Remplissez ce formulaire pour ajouter un commentaire.









Insertion Spéciale :








Ajout de commentaire désactivé.