IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage Java Discussion :

mot de passe hasher


Sujet :

Langage Java

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    168
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 168
    Par défaut mot de passe hasher
    Bonjour, j'essaye de hasher un mot de passe,avec l'algorithme DES,
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    String ss = "toto";
     byte[] plainText = ss.getBytes();
     KeyGenerator keyGen = KeyGenerator.getInstance("DES");
     keyGen.init(56);
     Key key = keyGen.generateKey();
     Cipher cipher = Cipher.getInstance("DES/ECB/PKCS5Padding");
     cipher.init(Cipher.ENCRYPT_MODE, key);
     byte[] cipherText = cipher.doFinal(plainText);
     System.out.println(new String(cipherText, "UTF8"));
    Je récupere le toto codé (par exemple) ØÖÆd‚—Jh
    pour décoder
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    String ss = "ØÖÆd‚—Jh";
    byte[] plainText = ss.getBytes();
    System.out.println("\nStart generating DES key");
    KeyGenerator keyGen = KeyGenerator.getInstance("DES");
    keyGen.init(56);
    Key key = keyGen.generateKey();
    Cipher cipher = Cipher.getInstance("DES/ECB/PKCS5Padding");
    cipher.init(Cipher.DECRYPT_MODE, key);
    byte[] newPlainText = cipher.doFinal(plainText);
    J'ai une exception :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Exception in thread "main" javax.crypto.BadPaddingException: Given final block not properly padded

    Je dois faire une grosse erreur mais je ne vois pas ou
    merci

  2. #2
    Membre émérite Avatar de benratti
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    471
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mai 2004
    Messages : 471
    Par défaut
    toi qui utilise de la cryptographie, ca serait bien d'en apprendre un peu les termes.

    Le DES est un algo de chiffrement symetrique qui necessite une clef. Les actions que tu peux faire, c'est chiffrer et dechiffer ( et non pas l'anglissisme crypter et decrypter ).

    Ensuite tu as une autre famille de fonction, qui n'est pas specifique aux monde de la cryptographie, les fonctions de hashage. La principal propriété estque c'est des fonctions non-inversible dans un temps réaliste. Il existe cependant quelques attaques la dessus ma ce n'est pas le sujet.

    Donc avec les DES, tu ne peux pas hasher quoi que ce soit ! ( Enfin, j'avais vu un article ou ils utilisaient le DES pour faire du hash en utilisant le texte à chiffrer en clef et en données... mais c'etait vraiment de la bidouille )

    Bref, j'avais deja vu pas mal de personnes qui voulait dechiffrer un hash, mais t'es bien le premier que je rencontre qui veut hasher avec une algo de chiffrement !

    Conclusion, j'ai pas envie de taider car j'en ai marre de voir des posts sur la cryptographie avec des gens qui n'en connaissent même pas le vocabulaire !

    Désolé que ca tombre sur toi, je n'ai rien personnellement contre toi et j'espere que quelqu'un pourras t'aider.

  3. #3
    Membre émérite Avatar de benratti
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    471
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mai 2004
    Messages : 471
    Par défaut
    question con : pourquoi tu regénères une clef pour dechiffrer. Normalement avec le DES, c'est la même clef qui sert pour le chiffrement ET le dechiffrement, c'est ce que l'on appele le chiffrement syymetrique ou autrement appelé le chiffrement à clef privée.

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    168
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 168
    Par défaut
    OK !!! OK !!!! tirez plus sur le pianiste. Il est vrai que je me suis lancé à la légere sur ce sujet.
    Je ne parle plus de cryptage et de hashage tant que je ne n'ai pas appris le vocabulaire et la théorie !!!
    Ce que je souhaiterais faire :
    stocker dans un fichier un mot, que je "codé" dans programme d'initialisation. Et pouvoir récuperer dans une autre programme le mot stocké dans le fichier et le "décoder".
    Je vais faire sans en attendant d'en savoir plus.
    merci

  5. #5
    Membre émérite Avatar de benratti
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    471
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mai 2004
    Messages : 471
    Par défaut
    Désolé de m'être un peu enervé tout à l'heure... j'y ai été un peu fort.

    Pour ce qui est de ton problème, il ne faut pas oublier que pour les DES, il faut que tu ais une clef qui sert pour deux choses :
    - chiffrer ton mot ("coder" le mot dans ton fichier par ton appli d'initialisation)
    - déchiffrer ton mot ( "décoder" le mot par ta seconde appli )

    Il faut donc que la clef de chiffrement, dechiffrement soit connu des tes deux applications.

    Dans le code que tu nous a donné dans ton post, tu ne fait pas cela.

    Ce que tu fait toi :
    1/ tu generes une clef A
    2/ tu chiffres ton mot avec la clef A
    3/ tu generes une clef B
    4/ tu dechiffres le mot avec la clef B -> Problème !!!

    Tu vois ce que je veux dire ?

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    168
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 168
    Par défaut
    Pas de problème pour le coup de gueule !!
    J'ai bien compris qu'il fallait que je stocke qqpart la clef de chiffrement, j'ai vu un exemple qui fabrique une clef à partir d'un mot (connu de l'appelant et de l'appelé). Je vais, d'abord, faire un peu d'auto formation sur tout ça. Je referais un post quand je serais ok
    merci

  7. #7
    Membre émérite Avatar de benratti
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    471
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mai 2004
    Messages : 471
    Par défaut
    Si t'as des questions sur la cryptographie, n'hesites pas à les poser ici, j'ai boser la dessus pendant un moment, sans en être un expert, je connais le domaine.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Hasher automatiquement les mots de passe
    Par caema dans le forum PHP & Base de données
    Réponses: 9
    Dernier message: 10/01/2013, 01h06
  2. Hasher un mot de passe
    Par danho dans le forum VB.NET
    Réponses: 3
    Dernier message: 10/11/2011, 11h10
  3. [VBA]Comment, dans le code VBA, hasher un mot de passe ?
    Par lord abortion dans le forum VBA Access
    Réponses: 6
    Dernier message: 18/04/2007, 16h41
  4. Réccupération du mot de passe d'une connexion
    Par zinaif dans le forum Bases de données
    Réponses: 1
    Dernier message: 02/12/2002, 18h32
  5. Au sujet des mots de passe
    Par FranT dans le forum Langage
    Réponses: 6
    Dernier message: 17/09/2002, 22h16

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo