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

Collection et Stream Java Discussion :

Utiliser l'algoritme de césar


Sujet :

Collection et Stream Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre actif
    Inscrit en
    Juin 2010
    Messages
    74
    Détails du profil
    Informations forums :
    Inscription : Juin 2010
    Messages : 74
    Par défaut Utiliser l'algoritme de césar
    bonjour
    j'ai téléchargé cette classe pour le cryptage des classes java en utilisant l'algorithme de césar , mais je n'ai pas pu l'utiliser dans mon projet puisque je ne sais pas bien comment elle fonctionne ,
    Est ce que quelqu'un peut me dire quelles sont les méthodes qui vont être appelées pour faire le cryptage et quels sont ses paramètres (moi j'ai le fichier à crypter et la clé)

    la classe :
    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
     
    package crypter;
    import java.util.*;
    import java.io.*;
    import java.lang.reflect.*;
    import java.io.FileNotFoundException;
    import java.io.IOException;
    public class SecureClassLoader extends ClassLoader{
      private int key;
      public SecureClassLoader(int key) {this.key = key; }
      static public boolean encrypt(String className, int key){
        className = className.replace('.', '/');
        try{
          FileInputStream in = new FileInputStream(className + ".class");
          FileOutputStream out = new FileOutputStream(className + ".caesar");
          {
            int ch;
            byte c;
            while ( (ch = in.read()) != -1) {
              c = (byte) (ch + key);
              out.write(c);
            }
          }
          in.close();
          out.close();
        }
        catch(IOException e){
          System.out.println("Erreur IOEXception encrypt");
          return false;
        }
        return true;
      }
      protected Class findClass(String className) throws ClassNotFoundException{
        byte[] classBytes;
        try{
          classBytes = loadClassBytes(className);
        }
        catch (IOException e){
          System.out.println("Erreur findClass");
          throw new ClassNotFoundException(className);
        }
        Class cl = defineClass(className, classBytes, 0, classBytes.length);
        if (cl == null)
          throw new ClassNotFoundException(className);
        return cl;
      }
      private byte[] loadClassBytes(String className) throws IOException {
        // Si la classe fait partie d'un package
        className = className.replace('.', '/');
        FileInputStream in = null;
        try {
          in = new FileInputStream(className + ".caesar");
          ByteArrayOutputStream buffer = new ByteArrayOutputStream();
          int ch;
          while ((ch = in.read()) != -1){
            byte b = (byte)(ch-key);
            buffer.write(b);
          }
          in.close();
          return buffer.toByteArray();
        }
        finally{
          if (in != null)
            in.close();
        }
      }
      public static void main(String[] args) {
     
        SecureClassLoader secureClassLoader1 = new SecureClassLoader(15);
      }
    }
    merci d'avance

  2. #2
    Membre chevronné
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Octobre 2008
    Messages
    380
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2008
    Messages : 380
    Par défaut
    Bonjour,

    Je ne sais pas où tu as téléchargé cette classe, mais elle était vraiment fournie comme ça sans explication, ni commentaire, ni classe d'exemple?

    La méthode encrypt doit surement être appelée pour faire le cryptage sur les fichier .class et les transformer en fichier .caesar. En utilisant en paramètres le nom de la classe et la clé de cryptage.

  3. #3
    Expert éminent
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Par défaut
    a noter si tu n'es pas au courant qu'un chiffre de césar, ça vaut zéro au niveau de la confidentialité Ca se casse en deux minutes, le temps d'écrire l'aglo

  4. #4
    Membre très actif
    Profil pro
    Inscrit en
    Février 2010
    Messages
    767
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2010
    Messages : 767
    Par défaut
    Il faudrait connaitre le but de ce cryptage pour dire si notre ami césar peut rendre service.

    Sinon oui en terme de cryptage l'algorithme de césar est complètement obsolète depuis des siècles. De nos jours il faut passer par du RSA 1024 minimum, sinon du AES 256 , très bien aussi car la clé est plus courte.

  5. #5
    Expert confirmé
    Avatar de Marco46
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2005
    Messages
    4 419
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Août 2005
    Messages : 4 419
    Par défaut
    Citation Envoyé par Jimmy_ Voir le message
    Sinon oui en terme de cryptage l'algorithme de césar est complètement obsolète depuis des siècles. De nos jours il faut passer par du RSA 1024 minimum, sinon du AES 256 , très bien aussi car la clé est plus courte.
    C'est pas vraiment la même utilisation.

    AES est un algo symétrique servant à chiffrer des données.
    RSA est un algo asymétrique servant à chiffrer la clef de session d'un algo symétrique et rien de plus. Chiffrer des données en RSA ne veut rien dire si l'on ne dit pas quel algo symétrique est utilisé derrière.

    EDIT : Et on dit chiffrer et pas crypter.

  6. #6
    Membre très actif
    Profil pro
    Inscrit en
    Février 2010
    Messages
    767
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2010
    Messages : 767
    Par défaut
    RSA est un algo asymétrique servant à chiffrer la clef de session d'un algo symétrique et rien de plus. Chiffrer des données en RSA ne veut rien dire si l'on ne dit pas quel algo symétrique est utilisé derrière.
    Tout faux, on peut très bien utiliser RSA seul pour 'chiffer' des messages complets.
    Le système que tu décris est une application qui utilise deux algorithmes dans un contexte particulier. La propriété de RSA est de disposer d'une clé publique de chiffrement et d'une clé privée pour déchiffer. Ce qui est justement très pratique dans le contexte web.
    Mais je te rassure RSA marche très bien tout seul pour des données.


    Mais donc sur ce débat un seul algorithme est largement suffisant qu'il soit symétrique ou asymétrique.


    Citation Envoyé par Marco46 Voir le message
    EDIT : Et on dit chiffrer et pas crypter.
    crypter c'est un anglicisme, alors en informatique ou l'anglais est partout, je vois pas le soucis.

Discussions similaires

  1. Algorithme de chiffrement utilisant césar
    Par KaNDeL dans le forum Débuter
    Réponses: 10
    Dernier message: 31/10/2009, 18h24
  2. utiliser les tag [MFC] [Win32] [.NET] [C++/CLI]
    Par hiko-seijuro dans le forum Visual C++
    Réponses: 8
    Dernier message: 08/06/2005, 15h57
  3. utilisation du meta type ANY
    Par Anonymous dans le forum CORBA
    Réponses: 1
    Dernier message: 15/04/2002, 12h36
  4. [BCB5] Utilisation des Ressources (.res)
    Par Vince78 dans le forum C++Builder
    Réponses: 2
    Dernier message: 04/04/2002, 16h01
  5. 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