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 :

problème avec blowfish


Sujet :

Sécurité Java

  1. #1
    Membre du Club
    Inscrit en
    Février 2005
    Messages
    116
    Détails du profil
    Informations forums :
    Inscription : Février 2005
    Messages : 116
    Points : 44
    Points
    44
    Par défaut problème avec blowfish
    j'utilise l'algo blowfish pour crypter mes passwords. A l'ouverture de mon programme il faut entrer son login et password. Le password est crypté puis comparé avec le password crypté de la base. Mais ils ne sont jamais les meme, pourquoi ???

    Voici le code pour la création d'un user
    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
      void jButtonAdd_actionPerformed(ActionEvent e) {
        if (jTextFieldLogin.getText() != null && jTextFieldPass.getText() != null) {
     
          typeUser = (TypeUtilisateur) jComboTypeUser.getSelectedItem();
          String pleinText = jTextFieldPass.getText();
          blowfish.generateKey();
          byte[] secretKey = blowfish.getSecretKeyInBytes();
          byte[] ciphertext = blowfish.crypt(pleinText);
     
          try {
     
            user = new User(jTextFieldLogin.getText(),
                            ciphertext, typeUser.getTu_id());
            requetesUser.insertUser(user);
          }
          catch (NumberFormatException nfe) {
            System.out.println(nfe);
          }
        }
        fillTypeUser();
     
      }
    et le code lors du login

    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
     void jButtonLogin_actionPerformed(ActionEvent e) {
        if (jTxtLogin.getText() != null && jPasswordField1.getPassword() != null) {
          String pleinText = new String(jPasswordField1.getPassword());
          System.out.println("plaintext = " + pleinText);
          blowfish.generateKey();
          byte[] secretKey = blowfish.getSecretKeyInBytes();
          ArrayList listeUser = requetesUser.getListUser();
          byte[] ciphertext = blowfish.crypt(pleinText);
          System.out.println("ciphertext = " + ciphertext);
          blowfish.setSecretKey(secretKey);
          String plaintext2 = blowfish.decryptInString(ciphertext);
          System.out.println("plaintext2 = " + plaintext2);
          user = new User(jTxtLogin.getText(), ciphertext);
     
          if (listeUser.contains(user) == true) {
            System.out.println("l'user existe");
     
            gui.setEnabled(true);
            this.dispose();
          }
          else {
            System.out.println("l'user existe pas");
          }
        }
     
      }

  2. #2
    MrX
    MrX est déconnecté
    Membre du Club
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    46
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2004
    Messages : 46
    Points : 42
    Points
    42
    Par défaut
    salut moi je crypte des fichiers entiers et pas de pb regardes mon codes si tuveux


    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
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    public class Cryptage 
    {
    	/**
             * Clé de cryptage
             */
    	private Key clef,secretKey;
    	/**
             * Mot de passe permettant de créer la clé de cryptage
             */
    	private String cle;
    	/**
             * Mot de passe décomposé en tableau de byte
             */
    	private byte[] passwordInBytes; 
    	/**
             * Constructeur qui va créer la clé de cryptage
             */
     
    	public Cryptage(String cle)
    	{
    		try 
    		{
    			/**
                             * encodage avec ISO-8859-2 qui permet de traiter les langues dites "latines"
                             */
    			 passwordInBytes = cle.getBytes("ISO-8859-2");
    			/**
                             * algo de cryptage : Blowfish (le plus souvent utilisé)
                             */
    			 clef=new SecretKeySpec(passwordInBytes,"Blowfish");
     
    		} 
    		catch (UnsupportedEncodingException e) 
    		{
    			  new LogException("../log/serveurException.log","serveur","58","58","58",e.toString()).enregistrementLog();
     
    		}
    	}
    	/**
             * méthde retournant le mot de passe sous forme de tableau de byte
             * @return
             */
    	public byte[] getSecretKeyInBites()
    	{
    		return clef.getEncoded();
    	}
    	/**
             * Méthode permettant de crypter une chaine de caractères
             * Elle va retourner un tableau de byte qui va représenter le cryptage de cette chaine de caractères
             * 
             * Cette méhode va transformer la chaine de caractères en tableau de byte puis appeler la méthode 
             * cryptageByte
             * @param txt = chaine de caractère à crypter
             * @return
             */
    	public byte[] cryptageString(String txt)
    	{
    		return cryptageByte(txt.getBytes());
    	}
    	/**
             * Méthode permettant de crypter un tableau de byte
             * Elle va retourner un tableau de byte crypté à l'aide de l'algo de Blowfish et de la clé de cryptage
             * @param txt
             * @return
             */
    	public byte[] cryptageByte(byte[] txt)
    	{
    		try
    		{
    			Cipher cipher=Cipher.getInstance("Blowfish");
    			cipher.init(Cipher.ENCRYPT_MODE,clef);
    			return cipher.doFinal(txt);
    		}
    		catch (Exception e)
    		{
    			 new LogException("../log/serveurException.log","serveur","58","58","59",e.toString()).enregistrementLog();
     
    			return null;
    		}
     
    	}
    	/**
             * Méthode permettant de décrypter un tableau de byte
             * @param txt= tableau de byte à décrypter
             * @return tableau de byte décypté
             */
    	public byte[] decryptageInByte(byte[] txt)
    	{
    		try
    		{
    			Cipher cipher=Cipher.getInstance("Blowfish");
    			cipher.init(Cipher.DECRYPT_MODE,clef);
    			return cipher.doFinal(txt);
    		}
    		catch (Exception e)
    		{
    			 new LogException("../log/serveurException.log","serveur","58","58","60",e.toString()).enregistrementLog();
     
    			return null;
    		}
     
    	}
    	/**
             * Cette méthode permet de décrypter un tableau de byte (en appelant la méthopde decryptageInByte) et
             * de transformer le tableau de byte en chaine de caractère
             * @param txt
             * @return
             */
    	public String decryptageInString(byte[] txt)
    	{
    		return new String(decryptageInByte(txt));
    	}
    Bon courage
    @+++ Xav

  3. #3
    Membre du Club
    Inscrit en
    Février 2005
    Messages
    116
    Détails du profil
    Informations forums :
    Inscription : Février 2005
    Messages : 116
    Points : 44
    Points
    44
    Par défaut
    up

Discussions similaires

  1. Problème avec blowfish et OpenSSL
    Par HacKSpideR dans le forum C
    Réponses: 6
    Dernier message: 01/03/2009, 20h46
  2. VC++ Direct3D8, problème avec LPD3DXFONT et LPD3DTEXTURE8
    Par Magus (Dave) dans le forum DirectX
    Réponses: 3
    Dernier message: 03/08/2002, 11h10
  3. Problème avec le type 'Corba::Any_out'
    Par Steven dans le forum CORBA
    Réponses: 2
    Dernier message: 14/07/2002, 18h48
  4. Problème avec la mémoire virtuelle
    Par Anonymous dans le forum CORBA
    Réponses: 13
    Dernier message: 16/04/2002, 16h10

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