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

SL & STL C++ Discussion :

Comment crypter une chaîne de caractères ?


Sujet :

SL & STL C++

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Juillet 2008
    Messages
    38
    Détails du profil
    Informations forums :
    Inscription : Juillet 2008
    Messages : 38
    Par défaut Comment crypter une chaîne de caractères ?
    Bonjour à toutes et à tous,

    mon problème de la semaine est de crypter une chaîne de caractères...
    Cependant, la petite difficulté est qu'une fonction doit prendre en argument cette chaîne crypter et savoir l'utiliser.

    Connaitriez-vous un tutoriel sur ce sujet ou bien une fonction adéquat en C++ ?

    Je vous remercie.
    Seinen.

  2. #2
    Expert éminent
    Avatar de koala01
    Homme Profil pro
    aucun
    Inscrit en
    Octobre 2004
    Messages
    11 644
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : Belgique

    Informations professionnelles :
    Activité : aucun

    Informations forums :
    Inscription : Octobre 2004
    Messages : 11 644
    Par défaut
    Salut,

    Il faudrait déjà savoir le genre de cryptage que tu souhaites effectuer...

    Le "plus simple" (comprend: celui qui sera le plus facile à appliquer, mais qui sera aussi le plus facile à "cracker") est le cryptage de Cesar ou une de ses variantes:

    Tu choisi une "clé" numérique, par exemple 1597, puis tu boucle sur chaque caractère de ta chaine en ajoutant 1 au premier caractère, 5 au deuxième, 9 au troisième 7 au quatrieme et en recommençant avec les caractères suivant jusqu'à ce que tu aie parcouru l'ensemble de la chaine d'origine.

    Pour la décrypter, il "suffit" de faire le mouvement inverse: retrancher 1 au premier caractère, 5 au deuxième, 9 au troisième, 7 au quatrième en recommancant jusqu'au bout.
    (à vrai dire, César se contentais de décaler, pour un même message, ses lettre d'une valeur toujours égale )

    D'autres méthodes de cryptages existe, dis nous laquelle "t'inspire" et nous te dirons comment y arriver
    A méditer: La solution la plus simple est toujours la moins compliquée
    Ce qui se conçoit bien s'énonce clairement, et les mots pour le dire vous viennent aisément. Nicolas Boileau
    Compiler Gcc sous windows avec MinGW
    Coder efficacement en C++ : dans les bacs le 17 février 2014
    mon tout nouveau blog

  3. #3
    Membre Expert Avatar de gnto
    Homme Profil pro
    Ingénieur système logiciel
    Inscrit en
    Janvier 2006
    Messages
    923
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Ingénieur système logiciel
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Janvier 2006
    Messages : 923
    Par défaut
    En cherchant sur le net on trouve cette biblio : http://www.cryptopp.com/

    Ca dépend de ce que tu veux faire mais la tu as les algos les plus utilisés (AES,RSA)

    NB : Je ne l'ai jamais utilisée

  4. #4
    Inactif  
    Profil pro
    Inscrit en
    Mars 2004
    Messages
    743
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2004
    Messages : 743
    Par défaut
    Citation Envoyé par koala01 Voir le message
    Le "plus simple" (comprend: celui qui sera le plus facile à appliquer, mais qui sera aussi le plus facile à "cracker") est le cryptage de Cesar ou une de ses variantes:
    Ca dépend de la longueur de la clé.

    Y'a aussi un cryptage avec une double clé (ou plus). En général on préfère choisir 2 mots clés plutôt que des nombres (par commodité pour s'en souvenir) et on associe à chaque lettre un nombre (A=1, B=2..., ou bêtement le code ASCII)
    Le tout étant de prendre des clés dont les longueurs respectives sont premières entre elles, ainsi on a quasiment l'équivalent d'une grande clé dont la longueur correspond au produit des longueurs des petites clés.
    A ma connaissance, c'est l'un des rares cryptages simples pratiquement incassable.

    Sinon, c'est clair qu'il y plus costaud comme cryptage (J'ai eu des cours la dessus, mais ça remonte à une paire d'années.) . La notion de clé publique est sympa aussi...

  5. #5
    Membre averti
    Inscrit en
    Juillet 2008
    Messages
    38
    Détails du profil
    Informations forums :
    Inscription : Juillet 2008
    Messages : 38
    Par défaut
    En fait, dans mon programme, j'ouvre un répertoire situé sur un serveur. Le chemin est pour le moment en dur (par ex :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    chemin[]= \\\\mon_serveur\\Seinen\\mon_projet;
    ).

    Ce que je souhaite c'est crypter le code de mon programme pour ne plus faire apparaître ce chemin lorsqu'on essaye de bidouiller l'exécutable.
    Je suis entrain de réfléchir tout en écrivant, et je pense que finalement, il me faudrait plutôt crypter le code plutôt que simplement le chemin...

    Je n'avais pas précisé, mais j'utilise Visual Studio et je peux utiliser toutes les fonctions MFC.

Discussions similaires

  1. [FAQ] Comment tester une chaîne de caractères avec une expression régulière ?
    Par Baptiste Wicht dans le forum Vos Contributions VBScript
    Réponses: 1
    Dernier message: 20/11/2007, 19h43
  2. Réponses: 4
    Dernier message: 22/12/2006, 15h10
  3. Réponses: 1
    Dernier message: 01/11/2006, 19h20
  4. Comment découper une chaîne de caractères en VBA
    Par TomPad dans le forum Access
    Réponses: 3
    Dernier message: 23/06/2005, 09h58
  5. Réponses: 5
    Dernier message: 15/02/2005, 18h07

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