MD5 est une des séries d'algorithmes développés par le professeur Ronaled Rivest à l'université MIT (Rivest, 1994). Lorsque des travaux ont indiqué que MD4 était probablement peu sûr, MD5 a été conçu pour remplacer MD4. Les faiblesses de MD4 ont été retrouvées plus tard par Hans Dobbertin.Ce tutoriel explique comment hasher un string, fréquement des mots de passe pour raison de sécurité en utilisant deux méthodes de hachage MD5 et SHA-256. Le hachage permet d'encoder dans un seul sens. Et c'est bien là son plus grand avantage, donc le hachage est irréversible contrairement au chiffrement qui utilise une clé pour le cryptage et le décryptage.
Les fonctions de hachage SHA on été conçues par l'agence de sécurité nationale américaine (NSA). SHA signifie algorithme de hachage sécurisé. Les trois algorithmes SHA sont structurés différemment et se distinguent par SHA-0, SHA-1 et SHA-2. La famille SHA-2 utilise un algorithme identique avec une taille de digeste variable qui se distingue par SHA-224, SHA-256, SHA-384 et SHA-512.
import java.security.MessageDigest;Sortie:
public class md5_java
{
public static void main(String[] args)throws Exception
{
String password = "123456789";
MessageDigest md = MessageDigest.getInstance("MD5");
md.update(password.getBytes());
byte byteData[] = md.digest();
//convertir le tableau de bits en une format hexadécimal - méthode 1
StringBuffer sb = new StringBuffer();
for (int i = 0; i < byteData.length; i++) {
sb.append(Integer.toString((byteData[i] & 0xff) + 0x100, 16).substring(1));
}
System.out.println("En format hexa : " + sb.toString());
//convertir le tableau de bits en une format hexadécimal - méthode 2
StringBuffer hexString = new StringBuffer();
for (int i=0;i<byteData.length;i++) {
String hex=Integer.toHexString(0xff & byteData[i]);
if(hex.length()==1) hexString.append('0');
hexString.append(hex);
}
System.out.println("En format hexa : " + hexString.toString());
}
}
En format hexa : 25f9e794323b453885f5181f1b624d0b
En format hexa : 25f9e794323b453885f5181f1b624d0b
import java.security.MessageDigest;Sortie:
public class sha_java
{
public static void main(String[] args)throws Exception
{
String password = "123456789";
MessageDigest md = MessageDigest.getInstance("SHA-256");
md.update(password.getBytes());
byte byteData[] = md.digest();
//convertir le tableau de bits en une format hexadécimal - méthode 1
StringBuffer sb = new StringBuffer();
for (int i = 0; i < byteData.length; i++) {
sb.append(Integer.toString((byteData[i] & 0xff) + 0x100, 16).substring(1));
}
System.out.println("En format hexa : " + sb.toString());
//convertir le tableau de bits en une format hexadécimal - méthode 2
StringBuffer hexString = new StringBuffer();
for (int i=0;i<byteData.length;i++) {
String hex=Integer.toHexString(0xff & byteData[i]);
if(hex.length()==1) hexString.append('0');
hexString.append(hex);
}
System.out.println("En format hexa : " + hexString.toString());
}
}
En format hexa : 15e2b0d3c33891ebb0f1ef609ec419420c20e320ce94c65fbc8c3312448eb225
En format hexa : 15e2b0d3c33891ebb0f1ef609ec419420c20e320ce94c65fbc8c3312448eb225
Please disable your ad blocker and refresh the window to use this website.