|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
![]() ![]() Inscription : septembre 2003 Messages : 4 443 ![]() |
Bonjour à tous,
Je vous propose aujourd'hui un petit défi : écrire une fonction de décryptage connaissant la fonction de cryptage. Maxence HUBICHE nous livre une fonction de cryptage dans cet article : Une petite fonction de cryptage en VBA Le défi est d'écrire une fonction Decrypter inverse de la fonction Crypter. Pour tester la fonction écrite, il suffit d'enchaîner les deux fonctions. On doit retrouver la chaîne de caractères d'origine. Par exemple, dans la fenêtre d'exécution : Code :
? Decrypter(Crypter("Developpez.com défi décryptage 01234567890")) Ceci est un "défi éclair", poster votre fonction dans cette discussion dès que vous avez la solution. Je dévoilerai alors ma fonction à la suite. A vos méninges!
__________________
Assistant de création/modification de rubans Office Utilisez en VBA les librairies graphiques GDI, GDI+ et openGL Blog Office Mon Site DVP |
|
|
00
|
|
|
#2 |
![]() ![]() ![]() |
J'ai le droit de jouer ? Dis ... J'ai le droit ?
__________________
Mes tutoriels et vidéos : Tableaux croisés dynamiques, Access les Bases, et les autres ! |
|
00
|
|
|
#3 |
![]() ![]() Inscription : septembre 2003 Messages : 4 443 ![]() |
si personne d'autre ne trouve
__________________
Assistant de création/modification de rubans Office Utilisez en VBA les librairies graphiques GDI, GDI+ et openGL Blog Office Mon Site DVP |
|
|
00
|
|
|
#4 |
![]() ![]() Claude RenouleaudDéveloppeur informatique Inscription : février 2006 Messages : 4 860 ![]() |
Et moi le delphiste que je suis, y peux ?
Ça ce résume à 1 ligne de code dans les 2 boucles imbriquées.
__________________
A la question technique que par MP/MV tu formuleras, la réponse aux oubliettes finira. |
|
|
00
|
|
|
#5 | |
![]() ![]() Inscription : septembre 2003 Messages : 4 443 ![]() |
Citation:
__________________
Assistant de création/modification de rubans Office Utilisez en VBA les librairies graphiques GDI, GDI+ et openGL Blog Office Mon Site DVP |
|
|
|
00
|
|
|
#6 |
![]() ![]() ![]() |
Bon, allez... j'attends la fin de la semaine pour savoir si je peux gagner une sucette ou pas
__________________
Mes tutoriels et vidéos : Tableaux croisés dynamiques, Access les Bases, et les autres ! |
|
00
|
|
|
#7 | ||
|
Membre éprouvé
![]() Inscription : février 2007 Messages : 491 ![]() |
bonjour,
Voici ma fonction décryptage ![]() Pas très propre mais bon c 'est pour le jeu Code :
|
||
|
|
00
|
|
|
#8 | |||
![]() ![]() Inscription : septembre 2003 Messages : 4 443 ![]() |
![]() Citation:
![]() Voilà donc ma fonction : Code :
![]() Encore bravo à patbou.
__________________
Assistant de création/modification de rubans Office Utilisez en VBA les librairies graphiques GDI, GDI+ et openGL Blog Office Mon Site DVP |
|||
|
|
00
|
|
|
#9 | ||
![]() ![]() Claude RenouleaudDéveloppeur informatique Inscription : février 2006 Messages : 4 860 ![]() |
Et voilà pour ma part:
Code :
__________________
A la question technique que par MP/MV tu formuleras, la réponse aux oubliettes finira. |
||
|
|
00
|
|
|
#10 |
![]() ![]() ![]() |
![]() bon, ben ... tant pis alors... avec trois réponses, je m'incline Pour ma part, j'avais la même solution que cl@udius, mais avec la totalité du code autour et après avoir sorti les constantes de la procédure crypter pour en étendre la portée au module... vàlà vàlà...
__________________
Mes tutoriels et vidéos : Tableaux croisés dynamiques, Access les Bases, et les autres ! |
|
00
|
|
|
#11 |
![]() ![]() Inscription : septembre 2003 Messages : 4 443 ![]() |
bravo et merci à vous
maintenant on sait décrypter la fonction de maxence
__________________
Assistant de création/modification de rubans Office Utilisez en VBA les librairies graphiques GDI, GDI+ et openGL Blog Office Mon Site DVP |
|
|
00
|
|
|
#12 | |
|
Membre du Club
![]() Inscription : août 2007 Messages : 101 ![]() |
Citation:
Par conséquent, un valeur cryptée à l'aide de la méthode de maxence ne peut pas être stockée dans une cellule pour être décryptée plus tard... Mon défit à moi sera peut être de limiter l'alphabet utilisable aux caractères imprimables entre 32 et 255 dans la table ascii. La seule chose, c'est comment faire ?... C'est mon défit... Je reviendrai que quand je saurais faire... Au revoir pour un bout de temps... ;D Content de vous avoir connu ... |
|
|
|
00
|
|
|
#13 | |
![]() ![]() Inscription : septembre 2003 Messages : 4 443 ![]() |
Bjr,
Citation:
http://www.developpez.net/forums/d36...ence-cryptees/ On peut définir les caractères utilisables.
__________________
Assistant de création/modification de rubans Office Utilisez en VBA les librairies graphiques GDI, GDI+ et openGL Blog Office Mon Site DVP |
|
|
|
00
|
|
|
#14 | |
|
Membre du Club
![]() Inscription : août 2007 Messages : 101 ![]() |
Citation:
![]() Mais bon.... je suis faible.... alors j'y vais... ![]() Mais je maintien que c'est pas drôle ! ![]() ___________________ PS : Merci quand même
|
|
|
|
00
|
|
|
#15 |
|
Membre du Club
![]() Inscription : août 2007 Messages : 101 ![]() |
Mon soucis c'est que je peux le faire avec une fonction de feuille de calcul, mais le code de Arkham46 est trop imbriqué pour mes petits neurones. je ne le comprends pas à ces heures tardives (même le matin j'aurais du mal de toute façon).
Un petit coup de main je veux bien. dans une feuille de calcul je pose : Colonne A = CODE(Caractère Clair) 'Obligatoirement >=32 et <=255 Colonne B = CODE(Caractère de la Clef) 'Obligatoirement >=32 et <=255 Colonne C = A1 + B1 Pour générer un caractère crypté compris entre 32 et 255: Colonne D = MOD(C1;224)+32 Pour retrouver le caractère clair Colonne E =MOD(((D1+224)-(MOD(B1;224)+32))-32;224)+32 Donc le code VBA devrait être : je ne le met pas entre balises de code exprès pour conserver la couleur des parenthèses et essayer de comprendre l'erreur dans les imbrications .... Pour coder : ___________________________ Mid(sLettres, lCompteur, 1) = Chr(((Asc(Mid(pChaine, lCompteur, 1)) + (Asc(Mid(CLEF, (lCompteur Mod Len(CLEF)) + 1, 1)) * lLongueur)) Mod 224) + 32) ___________________________ OUI, Ok, Ça fonctionne Pour décoder : ___________________________ Mid(sLettres, lCompteur, 1) = Chr(((((Asc(Mid(pChaine, lCompteur, 1)) + 224)- ((Asc(Mid(CLEF, (lCompteur Mod Len(CLEF)) + 1, 1)) * lLongueur) Mod 224)+32)-32) Mod 224)+32) ___________________________ NON, Ça ne fonctionne pas .... Ça ne décode pas... Ça déconne plutôt... (Jeux de mots si vous permettez) 23h00 bientôt, je vais me coucher, demain travail... _______________________________ NB j'ai testé le code du lien proposé par Arkham46 , mais ça ne me convient pas. 1) j'ai pas tout compris (ou rien compris), 2) je ne veux pas de caractères non imprimables (code ascii entre 1 et 31) car ils génèrent des erreurs au décryptage dans les cellules ou les contrôles de formulaires. Le pire c'est que j'ai pas besoin de tout ça, c'est juste pour du codage en VBA...
|
|
|
00
|
|
|
#16 | ||||
|
Membre du Club
![]() Inscription : août 2007 Messages : 101 ![]() |
Code :
Code :
après ça m'invente des caractère en dehors de la plage. moi pas comprendre pourquoi ... j'ai pensé que le type de données n'était pas adapté, j'ai tout passé en variant... mais non ... donc pas comprendre... et pourtant moi chercher beaucoup, lire beaucoup, etc... mais non moi pas comprendre pourquoi ça pas marcher après itération 1 ? |
||||
|
|
00
|
|
|
#17 | ||
|
Membre du Club
![]() Inscription : août 2007 Messages : 101 ![]() |
J'arrête sur ce sujet.
J'ai trouvé ma solution pour crypter et décrypter le texte de cellules ou de contrôles de formulaires ou même des docs words... en supprimant du cryptage les codes de retour chariot, tabulation et autres (ceux dont la code ascii est inférieur à 32), et en les retrouvant après le décryptage afin de conserver la mise en page d'avant cryptage... Au cryptage de vigenère, j'ajoute une confusion supplémentaire avec le cryptage de Freissner (seul, c'est très facile à casser, donc très peu d'intérêt) La macro principale c'est SUB MAIN(). Code :
|
||
|
|
00
|
Copyright © 2000-2013 - www.developpez.com