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

Algorithmes et structures de données Discussion :

fonction de cryptage -> décryptage?


Sujet :

Algorithmes et structures de données

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    48
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2009
    Messages : 48
    Points : 41
    Points
    41
    Par défaut fonction de cryptage -> décryptage?
    Bonjour,
    Je débute en C++ et on m'a possé un colle pour ce weekend.
    On me demande a partir d'une fonction de cryptage :
    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
    std::string EncryptPassword(std::string Key, std::string Password)
       {
           char HASH[] = {'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's',
           't', 'u', 'v', 'w', 'x', 'y', 'z', 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U',
           'V', 'W', 'X', 'Y', 'Z', '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', '-', '_'};
           std::string _Crypted = "#1";
           for(int i = 0; i < Password.length(); i++)
           {
               char PPass = Password[i];
               char PKey = Key[i];
               int APass = (int)PPass / 16;
               int AKey = (int)PPass % 16;
               int ANB = (APass + (int)PKey) % sizeof(HASH);
               int ANB2 = (AKey + (int)PKey) % sizeof(HASH);          
               _Crypted += HASH[ANB];
               _Crypted += HASH[ANB2];
           }
           return _Crypted;
       }
    de crée la fonction de decryptage correspondante cependant je n'y arrive pas, quelqu'un peut il m'aider ?

    Merci !

  2. #2
    Membre confirmé
    Inscrit en
    Juillet 2005
    Messages
    512
    Détails du profil
    Informations forums :
    Inscription : Juillet 2005
    Messages : 512
    Points : 641
    Points
    641
    Par défaut
    Dans le code fourni :
    Si la chaine Key est plus courte que la chaine Password
    A quoi va bien être égal PKey quand l'indice aura dépassé la longueur de Key ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     for(int i = 0; i < Password.length(); i++)
           {
               char PPass = Password[i];
               char PKey = Key[i];
               //...

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    48
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2009
    Messages : 48
    Points : 41
    Points
    41
    Par défaut
    Ah oui, la clé est toujours plus longue que le mot de passe.

  4. #4
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    48
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2009
    Messages : 48
    Points : 41
    Points
    41
    Par défaut
    Je demande pas forcement la réponse a la solution mais ce serait pas mal en effet ^^", il me faudrait une méthodologie a suivre pour faire face a ce genre de problemes

  5. #5
    Rédacteur

    Avatar de millie
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    7 015
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 7 015
    Points : 9 818
    Points
    9 818
    Par défaut
    Citation Envoyé par Mickael23 Voir le message
    de crée la fonction de decryptage correspondante cependant je n'y arrive pas, quelqu'un peut il m'aider ?
    La plus rapide ou une quelconque ?

    Car pour n'importe quelle fonction de cryptage, il est facile d'écrire une fonction de décryptage en énumérant tous les cryptages possibles (temps d'exécution tout pourri, mais c'est une fonction)
    Je ne répondrai à aucune question technique en privé

  6. #6
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par millie Voir le message
    La plus rapide ou une quelconque ?

    Car pour n'importe quelle fonction de cryptage, il est facile d'écrire une fonction de décryptage en énumérant tous les cryptages possibles (temps d'exécution tout pourri, mais c'est une fonction)
    Ici, c'est quasiment ce qu'il faut faire...

    @mickael,

    la méthode générale avec des systèmes de cryptage comme le tien, c'est de prendre la fonction de cryptage et de l'inverser en partant par la fin...

    Ici donc :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    _Crypted += HASH[ANB2];
    _Crypted += HASH[ANB];
    1- lire les caractères 2 par 2 et leur appliquer l'inverse du tableau HASH

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    int ANB = (APass + (int)PKey) % sizeof(HASH);
    int ANB2 = (AKey + (int)PKey) % sizeof(HASH);
    char PKey = Key[i];
    2- soustraire PKey (modulo sizeof(HASH) ) de ces deux valeurs

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    char PPass = Password[i];
    char PKey = Key[i];
    int APass = (int)PPass / 16;
    int AKey = (int)PPass % 16;
    3- reconstituer le bout de Password...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    for(int i = 0; i < Password.length(); i++)
    Et ainsi de suite...

    Francois

Discussions similaires

  1. Réponses: 5
    Dernier message: 16/03/2016, 23h00
  2. Fonction de cryptage et décryptage
    Par zoheir_hm dans le forum Composants VCL
    Réponses: 2
    Dernier message: 19/01/2008, 11h05
  3. [Sécurité] Fonction de cryptage rapide
    Par Invité dans le forum Langage
    Réponses: 22
    Dernier message: 23/02/2006, 17h51
  4. Réponses: 1
    Dernier message: 08/02/2006, 11h18
  5. Réponses: 4
    Dernier message: 13/11/2005, 12h16

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