Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

HASHER VOS MOT DE PASSE


Information sur la source

Catégorie :Sécurite & cryptage Classé sous : hash, password, pass, hesher, cryptage Niveau : Débutant Date de création : 01/05/2005 Date de mise à jour : 01/05/2005 18:50:13 Vu : 10 031

Note :
6,8 / 10 - par 5 personnes
6,80 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10

Commentaire sur cette source (7)
Ajouter un commentaire et/ou une note

Description

Salamou alayakom(Salut)
La methode getHash(String) prend en paramètre une chaine
de caractère et retourne le chaine hashée(cryptée), c'est simple......
                                                                          LTF®(tunis)


 

Source

  • import java.security.MessageDigest;
  • import java.security.NoSuchAlgorithmException;
  • /*
  • * @Created on 1 févr. 2004<br>
  • * @Author : LTF®<br>
  • * @Package :
  • * @Project : eBilan
  • *
  • */
  • /**
  • * @author : LTF®<br>
  • */
  • public class SecurityTools
  • {
  • /**
  • *
  • * @param pWord
  • * @return
  • * @created on : 1 mai 2005
  • * @methode name : getHash
  • * @class : SecurityTools
  • * @package name :
  • * @project name :Astute File
  • * @return String
  • * @see
  • */
  • public String getHash(String pWord) throws Exception
  • {
  • try
  • {
  • String hex="";
  • int h=-1;
  • msgDigest=MessageDigest.getInstance(getAlgorithme());
  • msgDigest.update(pWord.getBytes());
  • hash=msgDigest.digest();
  • for(int i=0;i<hash.length;i++)
  • {
  • h=hash[i] & 0xFF;
  • if (h<16) hex += "0";
  • hex+=Integer.toString(h,16).toUpperCase()+"";
  • hex =hex + Byte.toString(hash[i]);
  • }//fin if
  • hex=hex.substring(0,14);
  • return hex;
  • }//fin for
  • catch(NoSuchAlgorithmException x)
  • {
  • throw new Exception("Impossible de continuer la hashage du mot");
  • }
  • }
  • /************************************************************************************************************
  • *
  • * LES ATTRIBUTS DE LA CLASSE
  • *
  • /*************************************************************************************************************/
  • private MessageDigest msgDigest;
  • private String algorithme="MD5";
  • private byte[] hash;
  • /**
  • * @return
  • * @created on : 1 févr. 2004
  • * @methode name : getAlgorithme
  • * @class : SecurityTools
  • * @package name :
  • * @project name :Astute File
  • * @return String
  • * @see
  • */
  • public String getAlgorithme()
  • {
  • return algorithme;
  • }
  • /**
  • * @return
  • * @created on : 1 févr. 2004
  • * @methode name : getHash
  • * @class : SecurityTools
  • * @package name :
  • * @project name :Astute File
  • * @return byte[]
  • * @see
  • */
  • public byte[] getHash()
  • {
  • return hash;
  • }
  • /**
  • * @return
  • * @created on : 1 févr. 2004
  • * @methode name : getMsgDigest
  • * @class : SecurityTools
  • * @package name :
  • * @project name :Astute File
  • * @return MessageDigest
  • * @see
  • */
  • public MessageDigest getMsgDigest()
  • {
  • return msgDigest;
  • }
  • /**
  • * @param string
  • * @created on : 1 févr. 2004
  • * @methode name : setAlgorithme
  • * @class : SecurityTools
  • * @package name :
  • * @project name :Astute File
  • * @return void
  • * @see
  • */
  • public void setAlgorithme(String string)
  • {
  • algorithme = string;
  • }
  • /**
  • * @param bs
  • * @created on : 1 févr. 2004
  • * @methode name : setHash
  • * @class : SecurityTools
  • * @package name :
  • * @project name :Astute File
  • * @return void
  • * @see
  • */
  • public void setHash(byte[] bs)
  • {
  • hash = bs;
  • }
  • /**
  • * @param digest
  • * @created on : 1 févr. 2004
  • * @methode name : setMsgDigest
  • * @class : SecurityTools
  • * @package name :
  • * @project name :Astute File
  • * @return void
  • * @see
  • */
  • public void setMsgDigest(MessageDigest digest)
  • {
  • msgDigest = digest;
  • }
  • }//fin de la classe
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;


/*
 * @Created on  1 févr. 2004<br>
 * @Author : LTF®<br>
 * @Package :
 * @Project : eBilan 
 * 
 */
/**
 * @author : LTF®<br>
 */
public class SecurityTools
{
	
	/**
	 * 
	 * @param pWord
	 * @return
	 * @created on : 1 mai 2005
	 * @methode name :  getHash
	 * @class : SecurityTools
	 * @package name :
	 * @project name :Astute File
	 * @return String
	 * @see
	 */
	public String getHash(String pWord) throws Exception
	  {
	    try
	  	 {      
			String hex="";
			int  h=-1;   	 	   
		    msgDigest=MessageDigest.getInstance(getAlgorithme());
			msgDigest.update(pWord.getBytes());
			hash=msgDigest.digest();
			  
			for(int i=0;i<hash.length;i++)
			 { 
				h=hash[i] & 0xFF;
				if (h<16)  hex += "0";
				  hex+=Integer.toString(h,16).toUpperCase()+"";
				  hex =hex + Byte.toString(hash[i]);
			    }//fin if
			      
			    hex=hex.substring(0,14);
				return hex;
			}//fin for
			catch(NoSuchAlgorithmException x)
			{
			   throw new Exception("Impossible de continuer la hashage du mot");
			}
		
		}
	
/************************************************************************************************************
 * 
 *   			LES ATTRIBUTS DE LA CLASSE	
 * 
/*************************************************************************************************************/
   private MessageDigest msgDigest;
   private String algorithme="MD5";
   private byte[] hash;	

/**
 * @return
 * @created on : 1 févr. 2004
 * @methode name :  getAlgorithme
 * @class : SecurityTools
 * @package name :
 * @project name :Astute File
 * @return String
 * @see
 */
public String getAlgorithme()
{
	return algorithme;
}

/**
 * @return
 * @created on : 1 févr. 2004
 * @methode name :  getHash
 * @class : SecurityTools
 * @package name :
 * @project name :Astute File
 * @return byte[]
 * @see
 */
public byte[] getHash()
{
	return hash;
}

/**
 * @return
 * @created on : 1 févr. 2004
 * @methode name :  getMsgDigest
 * @class : SecurityTools
 * @package name :
 * @project name :Astute File
 * @return MessageDigest
 * @see
 */
public MessageDigest getMsgDigest()
{
	return msgDigest;
}

/**
 * @param string
 * @created on : 1 févr. 2004
 * @methode name :  setAlgorithme
 * @class : SecurityTools
 * @package name :
 * @project name :Astute File
 * @return void
 * @see
 */
public void setAlgorithme(String string)
{
	algorithme = string;
}

/**
 * @param bs
 * @created on : 1 févr. 2004
 * @methode name :  setHash
 * @class : SecurityTools
 * @package name :
 * @project name :Astute File
 * @return void
 * @see
 */
public void setHash(byte[] bs)
{
	hash = bs;
}

/**
 * @param digest
 * @created on : 1 févr. 2004
 * @methode name :  setMsgDigest
 * @class : SecurityTools
 * @package name :
 * @project name :Astute File
 * @return void
 * @see
 */
public void setMsgDigest(MessageDigest digest)
{
	msgDigest = digest;
}

}//fin de la classe

Conclusion

Exemple d'utilisation :

SecurityTools st=new SecurityTools();
System.out.println("hash : " +  st.getHash("votre mot "));

 

Historique

01 mai 2005 18:50:13 :
-----

Commentaires et avis

signaler à un administrateur
Commentaire de shaiulud le 01/05/2005 22:27:07

Le principe de hashage des mots de passe est bon. l'utilisation de MD5 l'est un peu moins car des collisions ont été démontrées récement.
Il serait préféable d'utiliser SHA-1 qui est aujourd'hui plus sûr.

Sinon, source bien commentée et abordable par tous.

signaler à un administrateur
Commentaire de neodante le 02/05/2005 01:12:38 administrateur CS

Si tu veux utiliser SHA1 au lieu de MD5, met "SHA-1" au lieu de "MD5" ...

Pour voir l'ensemble des digest dispo en standard :
http://java.sun.com/j2se/1.4.2/docs/guide/security/CryptoSpec.html#AppA
Donc MD2, MD5, SHA-1, SHA-256, SHA-384, SHA-512

++

signaler à un administrateur
Commentaire de hamdisup le 26/10/2005 13:52:15

Salut,
le hashage est bon mais comment depuis la chaine hashée recuperer la chaine d'origine.

A+

signaler à un administrateur
Commentaire de thib90000 le 18/03/2006 21:11:33

salut hamdisup,
il me semble ,si je ne mabuse(se qui est possible , je suis jeune lol)
que le but d'un 'cryptage' est justement de rendre une donnée indecodable et inaxessible !
si ton idee est de savoir comment verifier si le mot de passe (entrer par un utilisateur par ex) est bon, il suffit de hasher a nouveau se mot de passe et de le comparer avec celui deja hasher

voila
comme je lai dit je suis jeune (et con donc peu etre)
jespere donc etre excusable si je me suis tromper
@ ++

signaler à un administrateur
Commentaire de neodante le 19/03/2006 00:58:37 administrateur CS

Effectivement le terme crypté (entres parenthèses) est un peu exagéré ...

++

signaler à un administrateur
Commentaire de epciel le 21/12/2006 05:14:51

"Le principe de hashage des mots de passe est bon. l'utilisation de MD5 l'est un peu moins car des collisions ont été démontrées récement"
Sur quelle OS? sur Windows ou bien Unix?
pour le code c bon Simple,lisible et sûr Bravo

Keep coding

signaler à un administrateur
Commentaire de rem02 le 05/01/2007 23:00:10

Salut epciel
l'OS n'a rien n'avoir dans le cryptage...
MD5 est une fonction de hashage ( des math...)
et s'il y a des collisions cela veut dire que la fonction peut donner le même hash a des mot de passes different..
( enfin si j'ai bien compris )

bon code... mais manque de commentaires...

Ajouter un commentaire

Discussions en rapport avec ce code source dans le forum

password [ par procef ] salut a tous, je bloque sur un pass a cracké, je vous demande pas de galerer dessus mais juste de jeter un ptit coup d'oeil! merci&lt;SCRIPT language [cryptage] Fusionner un code RSA et un reso TCP [ par ckiki93 ] [cryptage] Fusionner un code RSA et un reso TCP [ par ckiki93 ] Dsl pour le post Vide precedent....1-Les codes sources sont Correct. mon probleme ? 2-je voudrais réaliser le cryptage sur un reseau TCP Serveur Clien JOptionPane et password [ par Harmsik ] Bonjour,J'ai vu qu'il existe le JPasswordField pour que quand un utilisateur tape son mot de passe, il apparaisse avec des étoiles.J'aimerais savoir s tomcat mot de pass admin, manager ? [ par runner99 ] Bonjour,Jai installé tomcat 5 pou créer des page jsp, mais en ce qui concerne l'administration et la manager quel login faut il.Je met celui de mon co passer le .htaccess [ par joebilou99 ] Bonjour,Voila j'explique mon probleme : j'ai realiser un jeu de poker, et je voudrasi rajouter une derniere fonctionnalite : enregistrer son score en debutant qui peu pas debuter a cause d'un pb =] [ par niko29940242 ] bonjour a tous je debute alors ne vous moquer pas svp !j'ai un pti programme que j'ai fait grace a deux classe, le probleme etant ke je n'arive pas a une JTable sous java [ par strikers ] j'ai relier une base de donner a ma JTable et j'ai une colonne Password dans ma Jtable et je s'est pas comment on fais pour qu'il mette des estérixe d JFrame de password [ par maitredede ] Bonjour Je souhaiterais savoir si quelqu'un a r&#233;alis&#233;, ou peux m'aider &#224; r&#233;aliser une fen&#234;tre me permettant de saisir un log Cryptage simple d'une chaine de caracteres [ par fllacer ] Bonjour,je cherche comment crypter simplement une String en Java et la d&#233;crypter.ex : String aCrypter = "password";String crypt = cryptage ("pass


Nos sponsors

Sondage...

CalendriCode

Juillet 2009
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
2728293031  

Consulter la suite du CalendriCode

Téléchargements

Logiciels à télécharger sur le même thème :

Comparez les prix Nouvelle version

Photothèque Nouveau !



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
Temps d'éxécution de la page : 0,484 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.