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

Sécurité Java Discussion :

[Cryptographie] Crypter tres simplement


Sujet :

Sécurité Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Juin 2006
    Messages
    12
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 12
    Par défaut [Cryptographie] Crypter tres simplement
    Tout d'abord, bonjour à tous,
    Ce site est formidable, et m'a souvent été d'une grande utilité ^^

    Maintenant, entrons dans le vif du sujet. J'aimerais savoir si il existe en java une méthode de cryptage sans decryptage possible. Je m'explique, il y a peu, j'ai fai du php (ce qui a perverti mes habitudes java, comme un essai de switch sur une String, ou bien un == pour cette mm String :p), et il y a une fonction toute bete qui renvoi un chaine crypté a partir d'un texte et d'une clef (md5()). J'aimerais savoir s'il y a ce genre de methode en java, car mes recherches m'ont souvent fait aboutir à des algorythmes compliqués, ou bien des dizaines de lignes de codes. Comme le cryptage n'est pas le but de mon projet, j'aimerais que ce soit aussi simple que possible ^^

    Merci d'avance.

  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
    Pour l'API standard tu as le package javax.crypto, sinon il y a un tutoriel sur l'API Boundy Castle .
    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 émérite Avatar de g_rare
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    608
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 608
    Par défaut
    Citation Envoyé par OniChou
    J'aimerais savoir si il existe en java une méthode de cryptage sans decryptage possible. Je m'explique, il y a peu, j'ai fai du php , et il y a une fonction toute bete qui renvoi un chaine crypté a partir d'un texte et d'une clef (md5()).
    Petite précision, appliquer la fonction de hachage "MD5" (ou autre SHA-1 sans faille de crypto elle) n'est pas <<chiffrer>> : car ça ne permet que de garantir l'intégrité des données (avec un niveau de confidentialité minimal)...
    Maintenant si c'est ce que tu veux faire ?
    Voilà comment!

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
     
    /**
         * Renvoie l' "empreinte" resultant du hachage,
         * par la fonction specifiee (si disponible),
         * du message en parametre.
         */
        public static byte[] hacher(String fournisseur, String fonction, byte[] message)
            throws NoSuchAlgorithmException, NoSuchProviderException {
            byte[] empreinte = null;
            // SHA-1 par defaut
            MessageDigest fabrique =
                (fournisseur == null)
                    ? MessageDigest.getInstance(fonction == null ? DEFAUT_FONCTION : fonction)
                    : MessageDigest.getInstance(
                        fonction == null ? DEFAUT_FONCTION : fonction,
                        fournisseur);
            /*
             * fabrique.reset();
             */
            fabrique.update(message);
            empreinte = fabrique.digest();
            return empreinte;
        }
     
        /*
         * SHA-1
         * 
         * message: abc
         * hash: a9993e364706816aba3e25717850c26c9cd0d89d
         */
     
        /**
         * Renvoie l' "empreinte" resultant du hachage,
         * par la fonction specifiee (SHA-1 par defaut),
         * du texte en parametre ;
         * retourne la conversion hexadecimale de ses bits UTF-8 'non-signes' (sur 40 caracteres si SHA-1).
         * 
         * @see #hacher(String, byte[])
         */
        public static String hacher(String fournisseur, String fonction, String texte)
            throws NoSuchAlgorithmException, NoSuchProviderException, UnsupportedEncodingException {
            // SHA-1 par defaut
            byte[] empreinte = hacher(fournisseur, fonction, texte.getBytes("UTF-8"));
            // standard Unicode
            return Utilitaire.byteToHex(empreinte);
        }
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
     
    /**
         * Convertit des octets en leur representation hexadecimale (base 16),
         * chacun se retrouvant finalement 'non signe' et sur 2 caracteres.
         * 
         * @see http://java.sun.com/developer/technicalArticles/Security/AES/AES_v1.html
         */
        public static String byteToHex(byte[] bits) {
            if (bits == null) {
                return null;
            }
            StringBuffer hex = new StringBuffer(bits.length * 2); // encod(1_bit) => 2 digits
            for (int i = 0; i < bits.length; i++) {
                if (((int) bits[i] & 0xff) < 0x10) { // 0 < .. < 9
                    hex.append("0");
                }
                hex.append(Integer.toString((int) bits[i] & 0xff, 16)); // [(bit+256)%256]^16
            }
            return hex.toString();
        }

  4. #4
    Membre averti
    Inscrit en
    Juin 2006
    Messages
    12
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 12
    Par défaut
    Merci pour votre aide, je m'y remettrais des mon retour @home
    Ca m'a l'air d'etre assez court et simple vu les possibilités que ca apporte.

    Encore merci ^^

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

Discussions similaires

  1. Réponses: 17
    Dernier message: 18/06/2013, 20h50
  2. [Cryptographie] Problème de conception pour crypter des adresses mail
    Par Le Barde dans le forum Général Conception Web
    Réponses: 3
    Dernier message: 10/03/2011, 22h59
  3. [vb.net][cryptage] crypter simplement un mot de passe
    Par arnolem dans le forum Windows Forms
    Réponses: 9
    Dernier message: 05/01/2006, 11h24
  4. Réponses: 2
    Dernier message: 20/03/2002, 23h01

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