|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||||||
|
Invité de passage
![]() Inscription : septembre 2011 Messages : 4 ![]() |
Salut à tous,
Je fréquente le forum depuis un petit moment sans avoir poster jusqu'à présent mais aujourd'hui je suis face à deux problèmes et je viens solliciter votre aide. Voici la situation: 1er problème : Mon code doit simuler une authentification avec des calculs de chiffrement (triple DES,...). Je ne rentrerai pas trop dans les détails car la n'est pas le problème. Afin de rendre le programme dynamique je demande à l'utilisateur de saisire les clés de chiffrements qui seront utilisées plus tard. Je précise que j'utilise la librairie openssl pour effectuer les calculs. J'essaie donc de récupérer une clé de chiffrement depuis le terminal et c'est là qu'intervient le problème. La clé est au format hexadécimale. C'est à dire de la forme "0x0011AA22FF". Elle sera stockée dans un unsigned char[] sous la forme suivante: Code :
unsigned char cle[5]={0x00,0x11,0xAA,0x22,0xFF}; Code :
La solution parfaite serait que l'utilisateur puisse taper sa clé en une fois, que celle-ci soit considérée non pas comme un string mais comme une valeur en hexa que l'on viendrait parser dans le tableau d'unsigned char. 2eme problème Maintenant, afin de réaliser les mêmes opérations, le second objectif est de mettre en place une interface graphique avec Windows Form en C++ sous Visual Studio. J'ai voulu dans un premier temps utiliser ma solution (bien qu'un peu bancale (qui a dit beaucoup???) J'ai du coup essayé de convertir ce string avec ceci: Code :
Avec ce "joli" morceau de code j'ai le droit à l'erreur suivante: Code :
La démarche est donc très archaïque avec cette solution. J’espère avoir été assez clair dans mes explications afin que chacun puisse comprendre mon problème. Sinon n'hésitez pas à me demander des précision Merci par avance, Crackos Ps: Pour info, je code en C++ (malgré que j'utilise plus du C qu'autre chose) et ce sous Visual Studio, voilou |
||||||
|
|
00
|
|
|
#2 | ||
![]() ![]() |
Bonjour,
Pour ton problème de clé, tu peux utilisé fgets pour récupérer une chaîne de caractère (solution C). Ou std::string x; std::cin >> x; (solution C++). Ensuite pour la conversion, tu peux utiliser sscanf (solution C) ou le faire à la main avec : Code :
__________________
Recherche devs C++ motivés et sérieux pour Last Dungeon. Chaîne Youtube : Vidéos Ma page DVP : http://neckara.developpez.com/ |
||
|
|
00
|
|
|
#3 |
|
Membre habitué
![]() Étudiant Inscription : avril 2011 Messages : 239 ![]() |
Comme le dit neckara, pourquoi utiliser un tableau de char ?
Les string sont fait pour cela ! Puisque tu peux accéder à chacun de ses éléments comme tu le ferais avec un tableau. Maintenant tout dépend de ce que tu veux faire et afficher, mais utiliser des string est beaucoup plus aisé que d'utiliser des tableaux de char |
|
|
00
|
|
|
#4 | ||||
|
Membre habitué
![]() ![]() anciennement "sopsag" Inscription : février 2011 Messages : 118 ![]() |
Salut crackos77, je te fais don de ma super routine écrite il y a quelques années et qui résout ton problème n°1 :
Code :
ex Code :
tcho !
__________________
Captain'Flam anciennement Sopsag, aka Hadrien Win seven 64 / Visual 2010 / Python 2.7 / Eclipse |
||||
|
|
00
|
|
|
#5 | ||
|
Invité de passage
![]() Inscription : septembre 2011 Messages : 4 ![]() |
Salut tout le monde,
Tout d'abord merci pour vos réponses et notamment à Captain'Flam. Je me suis permis d'intégrer ta solution et en l'adaptant un petit peu cela fonctionne parfaitement Voici un petit aperçu du résultat: ![]() Je communique mon morceau de code pour ceux qui pourraient en avoir besoin: Code :
Crackos |
||
|
|
00
|
|
|
#6 | ||
|
Membre éprouvé
![]() Étudiant Inscription : juin 2012 Messages : 263 ![]() |
Ya un bon paquet de fuites mémoires quand même là dedans
![]() Code :
|
||
|
|
00
|
|
|
#7 |
|
Invité de passage
![]() Inscription : septembre 2011 Messages : 4 ![]() |
Voila c'est corrigé avec des delete.
|
|
|
00
|
Copyright © 2000-2013 - www.developpez.com