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

Java ME Discussion :

Problème de digest en SHA1 sur java 1.6


Sujet :

Java ME

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Août 2007
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 8
    Par défaut Problème de digest en SHA1 sur java 1.6
    Bonjour,

    Je suis débutante en Java. Je dois crypter un mot de passe en SHA1 sur ma version Java 1.6.

    J'ai trouvé une fonction sympa qui doit crypter mon mot de passe:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    import java.security.MessageDigest;
     
     public byte[] getHash(String password) throws NoSuchAlgorithmException {
           MessageDigest digest = MessageDigest.getInstance("SHA-1");
           digest.reset();
           byte[] input = digest.digest(password.getBytes());
     }
    Le problème c'est que j'ai une erreure sur la méthode digest. Le programme me dit qu'il doit avoir 3 arguments et moi je n'en ai qu'un seul.

    Comment cela se fait-il? Est ce que c'est ma version 1.6 de Java qui fait que ca ne marche pas?

    Merci à tous ceux qui se pencheront sur mon cas...

  2. #2
    Expert confirmé
    Avatar de le y@m's
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2005
    Messages
    2 636
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Février 2005
    Messages : 2 636
    Par défaut
    J'ai testé ce code avec Java 6 et je n'ai aucune erreur.
    Il existe bien une métode digest() n'attendant qu'un tableau de byte en paramètre.

    Peux tu poster le message d'erreur complet ?
    Je ne répondrai à aucune question technique par MP.

    Pensez aux Tutoriels et aux FAQs avant de poster ;) (pour le java il y a aussi JavaSearch), n'oubliez pas non plus la fonction Rechercher.
    Enfin, quand une solution a été trouvée à votre problème
    pensez au tag :resolu:

    Cours Dvp : http://ydisanto.developpez.com
    Blog : http://yann-disanto.blogspot.com/
    Page perso : http://yann-disanto.fr

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Août 2007
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 8
    Par défaut
    Le message d'erreur est le suivant:

    The method digest(byte[], int, int) in the type MessageDigest is not applicable for the arguments (byte[])

    C'est bizare il connaît la fonction avec 3 arguments mais pas celle que j'utilise avec 1 seul argument.

    Je tiens à préciser que je travail sur un projet sur eclipse en J2ME avec la version Java 1.6 (peut être que ca a un rapport, peut être pas...)

  4. #4
    Expert confirmé
    Avatar de le y@m's
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2005
    Messages
    2 636
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Février 2005
    Messages : 2 636
    Par défaut
    Citation Envoyé par Gwendoline
    Je tiens à préciser que je travail sur un projet sur eclipse en J2ME avec la version Java 1.6 (peut être que ca a un rapport, peut être pas...)
    En effet, pour J2ME la classe MessageDigest ne possède qu'une seule méthode digest() qui attend 3 paramètres.


    PS : je déplace le sujet vers le forum J2ME
    Je ne répondrai à aucune question technique par MP.

    Pensez aux Tutoriels et aux FAQs avant de poster ;) (pour le java il y a aussi JavaSearch), n'oubliez pas non plus la fonction Rechercher.
    Enfin, quand une solution a été trouvée à votre problème
    pensez au tag :resolu:

    Cours Dvp : http://ydisanto.developpez.com
    Blog : http://yann-disanto.blogspot.com/
    Page perso : http://yann-disanto.fr

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Août 2007
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 8
    Par défaut
    Merci beaucoup!

    Je sais maintenant d'ou vient le problème!

    Et je me pose alors une autre question! Quelqu'un connaît-il une fonction de cryptage sha1 similaire fonctionnant en J2ME?

    Merci pour vos réponses.

  6. #6
    Expert confirmé
    Avatar de le y@m's
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2005
    Messages
    2 636
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Février 2005
    Messages : 2 636
    Par défaut
    Ce code devrait fonctionner :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    byte[] input = password.getBytes();
    MessageDigest digest = MessageDigest.getInstance("SHA-1");
    digest.update(input, 0, input.length);
    int hashLength = 20; // SHA-1 donne un hash de longueur 20
    byte[] hash = new byte[hashLenth]; 
    digest.digest(hash, 0, hashLenth);
    return hash;
    Je ne répondrai à aucune question technique par MP.

    Pensez aux Tutoriels et aux FAQs avant de poster ;) (pour le java il y a aussi JavaSearch), n'oubliez pas non plus la fonction Rechercher.
    Enfin, quand une solution a été trouvée à votre problème
    pensez au tag :resolu:

    Cours Dvp : http://ydisanto.developpez.com
    Blog : http://yann-disanto.blogspot.com/
    Page perso : http://yann-disanto.fr

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

Discussions similaires

  1. Réponses: 1
    Dernier message: 26/11/2014, 02h27
  2. Réponses: 6
    Dernier message: 24/03/2009, 16h17
  3. Réponses: 7
    Dernier message: 26/07/2007, 10h10
  4. Quel est votre livre préféré sur Java ?
    Par Ricky81 dans le forum Général Java
    Réponses: 138
    Dernier message: 25/11/2006, 03h42
  5. Réponses: 5
    Dernier message: 27/08/2003, 11h45

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