begin process at 2010 02 10 11:25:50
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Sécurite & cryptage

 > CRYPTAGE AVEC MD5 ET COMPARAISON

CRYPTAGE AVEC MD5 ET COMPARAISON


 Information sur la source

Note :
7 / 10 - par 7 personnes
7,00 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10
Catégorie :Sécurite & cryptage Niveau :Initié Date de création :12/12/2003 Vu :28 266

Auteur : Gaelle

Ecrire un message privé
Commentaire sur cette source (2)
Ajouter un commentaire et/ou une note

 Description

Deux fonctions utilitaires dans cette petite classe... Une fonction qui encode une chaine (mot de passe) avec l'algorithme MD5 une autre qui teste une chaine en clair et une chaine hexa encodé et qui renvoi true si les deux se vérifie. J'ai laissé le main pour avoir un exemple. Bonne prog à tous ;-)

Source

  • import java.security.MessageDigest;
  • import java.security.NoSuchAlgorithmException;
  • /*
  • * Créé le 12 déc. 2003
  • *
  • * Fonctions utilitaires pour le cryptage MD5
  • * Encode une chaine et renvoi son résultat crypté en
  • * héxadécimal avec l'algorithme MD5 ou test
  • * une chaine et une valeur crypté. Main d'exemple fourni.
  • */
  • /**
  • * @author Gaelle
  • *
  • * Version : 1.0
  • * Last update : 12/12/2003
  • */
  • public class MD5Password
  • {
  • /*
  • * Encode la chaine passé en paramètre avec l'algorithme MD5
  • *
  • * @param key : la chaine à encoder
  • *
  • * @return la valeur (string) hexadécimale sur 32 bits
  • */
  • public static String getEncodedPassword(String key) {
  • byte[] uniqueKey = key.getBytes();
  • byte[] hash = null;
  • try {
  • hash = MessageDigest.getInstance("MD5").digest(uniqueKey);
  • } catch (NoSuchAlgorithmException e) {
  • throw new Error("no MD5 support in this VM");
  • }
  • StringBuffer hashString = new StringBuffer();
  • for ( int i = 0; i < hash.length; ++i ) {
  • String hex = Integer.toHexString(hash[i]);
  • if ( hex.length() == 1 ) {
  • hashString.append('0');
  • hashString.append(hex.charAt(hex.length()-1));
  • } else {
  • hashString.append(hex.substring(hex.length()-2));
  • }
  • }
  • return hashString.toString();
  • }
  • /*
  • * Test une chaine et une valeur encodé (chaine hexadécimale)
  • *
  • * @param clearTextTestPassword : la chaine non codé à tester
  • * @param encodedActualPassword : la valeur hexa MD5 de référence
  • *
  • * @return true si vérifié false sinon
  • */
  • public static boolean testPassword(String clearTextTestPassword,
  • String encodedActualPassword)
  • throws NoSuchAlgorithmException
  • {
  • String encodedTestPassword = MD5Password.getEncodedPassword(
  • clearTextTestPassword);
  • return (encodedTestPassword.equals(encodedActualPassword));
  • }
  • /*
  • * Un exemple bête d'utilisation
  • */
  • public static void main(String[] args) {
  • System.out.println(getEncodedPassword("mot de passe"));
  • try {
  • if (testPassword("mot de passe", "729f2d8b3d3d9bc07ba349faab7fdf44"))
  • System.out.println("Les passwords sont vérifiés");
  • } catch (NoSuchAlgorithmException e) {
  • e.printStackTrace();
  • }
  • }
  • }
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;

/*
 * Créé le 12 déc. 2003
 *
 * Fonctions utilitaires pour le cryptage MD5
 * Encode une chaine et renvoi son résultat crypté en
 * héxadécimal avec l'algorithme MD5 ou test
 * une chaine et une valeur crypté. Main d'exemple fourni.
 */

/**
 * @author Gaelle
 *
 * Version : 1.0
 * Last update : 12/12/2003
 */

public class MD5Password
  {
  	/*
  	 * Encode la chaine passé en paramètre avec l'algorithme MD5
  	 * 
  	 * @param key : la chaine à encoder
  	 * 
  	 * @return la valeur (string) hexadécimale sur 32 bits
  	 */
	public static String getEncodedPassword(String key) {
	  byte[] uniqueKey = key.getBytes();
	  byte[] hash = null;
	  try {
		hash = MessageDigest.getInstance("MD5").digest(uniqueKey);
	  } catch (NoSuchAlgorithmException e) {
		throw new Error("no MD5 support in this VM");
	  }
	  StringBuffer hashString = new StringBuffer();
	  for ( int i = 0; i < hash.length; ++i ) {
		String hex = Integer.toHexString(hash[i]);
		if ( hex.length() == 1 ) {
		  hashString.append('0');
		  hashString.append(hex.charAt(hex.length()-1));
		} else {
		  hashString.append(hex.substring(hex.length()-2));
		}
	  }
	  return hashString.toString();
	}

  /*
   * Test une chaine et une valeur encodé (chaine hexadécimale)
   * 
   * @param clearTextTestPassword : la chaine non codé à tester
   * @param encodedActualPassword : la valeur hexa MD5 de référence
   * 
   * @return true si vérifié false sinon
   */
  public static boolean testPassword(String clearTextTestPassword,
				   String encodedActualPassword)
				   throws NoSuchAlgorithmException
	{
	String encodedTestPassword = MD5Password.getEncodedPassword(
					  clearTextTestPassword);

	return (encodedTestPassword.equals(encodedActualPassword));
	}

	/*
	 * Un exemple bête d'utilisation
	 */
	public static void main(String[] args) {
		System.out.println(getEncodedPassword("mot de passe"));
		try {
			if (testPassword("mot de passe", "729f2d8b3d3d9bc07ba349faab7fdf44"))
				System.out.println("Les passwords sont vérifiés");
		} catch (NoSuchAlgorithmException e) {
			e.printStackTrace();
		}
	}
}



 Sources du même auteur

SMTP ET MAILS
APPLET DÉCOMPTE DU TEMPS

 Sources de la même categorie

CRYPTAGE SELON LA MÉTHODE DE CÉSAR par pyo656
Source avec Zip @$!__STEGACHAR__451 par CHAR As Human
Source avec Zip CHIFFREMENT AES (ADVANCED ENCRYPTION STANDARD) 128 BITS par ciberrique
Source avec Zip CHIFFREMENT RSA (RIVEST SHAMIR ADLEMAN) par ciberrique
Source avec Zip CALCUL DE HASH SHA 256 par ciberrique

Commentaires et avis

Commentaire de neodante le 16/12/2003 15:46:29 administrateur CS

C'est sympa ton truc, un seul petit regret est l'emploie d'un algo de hash (de vérification) comme un algo de cryptage alors que celui-ci n'en est pas vraiment un -&gt; redondance ... tu vas me dire c'est toujours qu'un cryptage avec l'algo de césar ... et je te comprendrais !
(Rapport avec ma dernière source qui est celle avant la tienne dans la catégorie'Sécurité et cryptage' !)
@+

Commentaire de Subalashi le 06/07/2004 17:02:18

Est ce que tu aurais un script pour renvoyer un mot de passe par mail si une personne a perdu le sien?donc en le décryptant

 Ajouter un commentaire




Nos sponsors


Sondage...

Comparez les prix


HTC Hero

Entre 550€ et 550€

CalendriCode

Février 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,920 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales