Une ligne en VB6 .. Convertion en C++ .. Argh :p

morpheus83z Messages postés 59 Date d'inscription mercredi 26 mai 2004 Statut Membre Dernière intervention 19 août 2004 - 18 août 2004 à 17:03
morpheus83z Messages postés 59 Date d'inscription mercredi 26 mai 2004 Statut Membre Dernière intervention 19 août 2004 - 19 août 2004 à 10:16
Re :)

Bon voilà, j'ai un petit prog' de cryptage/décryptage en VB. Actuellement je fais une DLL en VC++ qui s'occupera, entre autre, de décrypter un fichier contenant des droits d'utilisation. Déjà coder en VB, je bloque juste sur une petite chose.

codeasc = Asc(Mid(msgcrypt, i, 1)) - Asc(Mid(cle, j, 1))

Y'a t-il un moyen de coder ça simplement en C++ ?

Pour info, Asc() est une fonction renvoyant les codes ASCII des caractères rencontrés dans ma variable msgcrypt (qui peut contenir qqch du style : Az$^*ùaz*^r$er^$ùsa*ù).

Le pire c'est que je suis quasiment sur d'avoir vu l'équivalent mais là je remets pas la main dessus ..

10 réponses

morpheus83z Messages postés 59 Date d'inscription mercredi 26 mai 2004 Statut Membre Dernière intervention 19 août 2004
18 août 2004 à 17:04
convertion > conversion :)

grosse faute .. m'étonne pas que j'ai du mal à convertir du VB en C++ :)
0
cs_AlexMAN Messages postés 1536 Date d'inscription samedi 21 décembre 2002 Statut Membre Dernière intervention 24 mai 2009 1
18 août 2004 à 17:19
Si Mid permet de parcourir tous les caracteres d'une "string" essaye ca:

char *s = msgcrypt;
char *b = cle;
int codeasc = 0;

while (*s && *b)
codeasc = *s++ - *b++;

Ca metonnerait ke ce soit ca, jcomprend pas tres bien ton code VB. Essaye kan mm.
0
morpheus83z Messages postés 59 Date d'inscription mercredi 26 mai 2004 Statut Membre Dernière intervention 19 août 2004
18 août 2004 à 17:29
Je t'explique la ligne :

Asc(Mid(msgcrypt, i, 1)) - Asc(Mid(cle, j, 1))

msgcrypt = "u??|?~{?u??y^``?v??}z??ne`bb|zv~_aav?x?_aav}|??mb"

cle = 123457896

La fonction est dans une boucle while avec un i qui s'incrémente.

On va décrypter chaque caractère l'un à la suite de l'autre grâce à Mid(msgcrypt, i ,1). Jsuis ptet un tout pti peu plus clair ? :)

Donc pour l'adapter au C++ je cherchais un moyen pour récupéré les valeurs ASCII de mes caractères :p ! Je vais voir si j'arrive à le faire marcher en C++ :)
0
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
18 août 2004 à 17:30
codeasc = msgcrypt[i] - cle[j];

ciao...
BruNews, Admin CS, MVP Visual C++
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
morpheus83z Messages postés 59 Date d'inscription mercredi 26 mai 2004 Statut Membre Dernière intervention 19 août 2004
18 août 2004 à 17:31
Le soucis en fait, c'est de trouver une fonction permettant de remplacer Mid(... . Cette fonction sert à prendre un caractère de ma variable msgcrypt (le 2e par exemple) et de me renvoyer justement le code ascii .. Comment je pourrais choisir de prendre uniquement le 2e caractère en C++ ?!
0
morpheus83z Messages postés 59 Date d'inscription mercredi 26 mai 2004 Statut Membre Dernière intervention 19 août 2004
18 août 2004 à 17:43
CString::Mid : Apparemment c'est la solution :) ! Je regarderais mieux demain ! merci à tous pour vos conseils !

@+
0
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
18 août 2004 à 17:48
En C on n'a pas besoin de Mid et autres bizzareries, on accede direct a l'element, voir plus haut la reponse.

ciao...
BruNews, Admin CS, MVP Visual C++
0
DeAtHCrAsH Messages postés 2670 Date d'inscription vendredi 25 janvier 2002 Statut Membre Dernière intervention 6 février 2013
18 août 2004 à 20:53
morpheus83z> Comme BruNews te l'as fait remarquer, en C il n'y a pas besoin de fonction pour extraire un élément d'une chaine.

Une chaine est en fait un tableau.
Pour recuperer le 5ieme element il te faut donc proceder comme ceci :
char *msgcrypt;  /*La chaine de caractere*/

printf("%c",msgcrypt[4]);


Shell
0
pinderlot Messages postés 59 Date d'inscription jeudi 1 juillet 2004 Statut Membre Dernière intervention 1 septembre 2004 1
19 août 2004 à 10:13
je rappelle à tous que les termes "cryptage" et "decryptage" n'ont pas les mêmes sens que "chiffrement" et déchiffrement".

cryptage n'existe pas.

décryptage signifie "action qui consiste à casser le chiffrement d'un texte chiffré de façon à retrouver le texte en clair sans connaître la clé qui permettrait son déchiffrement normal". Bref c'est une action illicite !

expert SSI.
-----------------------------------------------
Tout ce qui ne tue pas rend plus fort !
0
morpheus83z Messages postés 59 Date d'inscription mercredi 26 mai 2004 Statut Membre Dernière intervention 19 août 2004
19 août 2004 à 10:16
mdr je vais dire ça à mon patron :-p

C'est lui qui m'a dit ça mais c'est vrai que c'est pas bête ce que tu dis ;)

sinon DeAtHCrAsH, j'ai compris maintenant, moi qui cherchait une fonction permettant de faire ça .. Ralala .. Jsuis pas tombée dans une marmitte de C++ quand j'étais ptit moi ..
0
Rejoignez-nous