FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC
Vous souhaitez réagir à ce message ? Créez un compte en quelques clics ou connectez-vous pour continuer.
FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC

Développement d'applications avec le langage Panoramic
 
AccueilAccueil  RechercherRechercher  Dernières imagesDernières images  S'enregistrerS'enregistrer  MembresMembres  Connexion  
Derniers sujets
» Logiciel de planétarium.
cryptage - Cryptage/décryptage d'un fichier quelconque Emptypar Pedro Aujourd'hui à 10:37

» Un autre pense-bête...
cryptage - Cryptage/décryptage d'un fichier quelconque Emptypar Froggy One Jeu 21 Nov 2024 - 15:54

» Récupération du contenu d'une page html.
cryptage - Cryptage/décryptage d'un fichier quelconque Emptypar Pedro Sam 16 Nov 2024 - 14:04

» Décompilation
cryptage - Cryptage/décryptage d'un fichier quelconque Emptypar JL35 Mar 12 Nov 2024 - 19:57

» Un album photos comme du temps des grands-mères
cryptage - Cryptage/décryptage d'un fichier quelconque Emptypar jjn4 Mar 12 Nov 2024 - 17:23

» traitement d'une feuille excel
cryptage - Cryptage/décryptage d'un fichier quelconque Emptypar jjn4 Jeu 7 Nov 2024 - 3:52

» Aide-mémoire mensuel
cryptage - Cryptage/décryptage d'un fichier quelconque Emptypar jjn4 Lun 4 Nov 2024 - 18:56

» Des incomprèhension avec Timer
cryptage - Cryptage/décryptage d'un fichier quelconque Emptypar Klaus Mer 30 Oct 2024 - 18:26

» KGF_dll - nouvelles versions
cryptage - Cryptage/décryptage d'un fichier quelconque Emptypar Klaus Mar 29 Oct 2024 - 17:58

» instructions panoramic
cryptage - Cryptage/décryptage d'un fichier quelconque Emptypar maelilou Lun 28 Oct 2024 - 19:51

» Figures fractales
cryptage - Cryptage/décryptage d'un fichier quelconque Emptypar Marc Ven 25 Oct 2024 - 12:18

» Panoramic et Scanette
cryptage - Cryptage/décryptage d'un fichier quelconque Emptypar Yannick Mer 25 Sep 2024 - 22:16

» Editeur d étiquette avec QR évolutif
cryptage - Cryptage/décryptage d'un fichier quelconque Emptypar JL35 Lun 23 Sep 2024 - 22:40

» BUG QR Code DelphiZXingQRCode
cryptage - Cryptage/décryptage d'un fichier quelconque Emptypar Yannick Dim 22 Sep 2024 - 11:40

» fichier.exe
cryptage - Cryptage/décryptage d'un fichier quelconque Emptypar leclode Ven 20 Sep 2024 - 19:02

Navigation
 Portail
 Index
 Membres
 Profil
 FAQ
 Rechercher
Rechercher
 
 

Résultats par :
 
Rechercher Recherche avancée
Novembre 2024
LunMarMerJeuVenSamDim
    123
45678910
11121314151617
18192021222324
252627282930 
CalendrierCalendrier
Le Deal du moment :
Smartphone Xiaomi 14 – 512 Go- 6,36″ 5G ...
Voir le deal
599 €

 

 Cryptage/décryptage d'un fichier quelconque

Aller en bas 
4 participants
AuteurMessage
JL35




Nombre de messages : 7112
Localisation : 77
Date d'inscription : 29/11/2007

cryptage - Cryptage/décryptage d'un fichier quelconque Empty
MessageSujet: Cryptage/décryptage d'un fichier quelconque   cryptage - Cryptage/décryptage d'un fichier quelconque EmptyMer 14 Avr 2010 - 17:19

Un moyen simple de crypter un fichier (pas trop long) avec un mot ou une phrase clé.
Ça ne résistera sans doute pas au FBI mais au moins c'est simple.
Code:
' Cryptage/décryptage d'un fichier texte ou binaire
DIM mp$, i, j, v, vc, f$, fc$, fd$, f1$, f2$
LABEL Codbin

mp$ = "MotDePasse": ' Code de cryptage, plus c'est long, mieux c'est
f$ = "C:\Textes\Lorem.txt": ' fichier à crypter
fc$ = "Z:\Fcod"
fd$ = "Z:\Fdec.txt"

PRINT "Codage..."
f1$ = f$: f2$ = fc$: GOSUB Codbin
PRINT "Décodage..."
f1$ = fc$: f2$ = fd$: GOSUB Codbin
PRINT "Terminé !"
END

Codbin: ' cryptage/décryptage (symétrique)
FILEBIN_OPEN_READ 1, f1$: FILEBIN_OPEN_WRITE 2, f2$
j = 1
FOR i = 1 TO FILEBIN_SIZE(1)
    FILEBIN_READ 1, v
    vc = BIN_XOR(v,  ASC(MID$(mp$, j, 1)))
    FILEBIN_WRITE 2, vc
    j = j + 1: IF j > LEN(mp$) THEN j = 1
NEXT i
FILEBIN_CLOSE 1: FILEBIN_CLOSE 2
RETURN
Revenir en haut Aller en bas
Klaus

Klaus


Nombre de messages : 12331
Age : 75
Localisation : Ile de France
Date d'inscription : 29/12/2009

cryptage - Cryptage/décryptage d'un fichier quelconque Empty
MessageSujet: Re: Cryptage/décryptage d'un fichier quelconque   cryptage - Cryptage/décryptage d'un fichier quelconque EmptyMer 14 Avr 2010 - 21:43

Intéressant, ce programme de cryptage. L'algorythme est simple (XOR octet par octet avec une phrase clé), et à moins de connaître la phrase clé, il n'est pas si évident à décrypter - du moins pour le hacker lambda.

J'ai une remarque à faire qui n'a rien à voir avec l'algorythme, mais plutôt avec les techniques de programmation. Si l'on est soucieux du temps d'exécution (et cela s'applique en particulier dans des boucles lentes comme celles lisant dans un fichier binaire), il est utile de déclarer les variables qui ne peuvent recevoir que des valeurs entières, avec le qualificateur % afin de leur donner une identité "integer". C'est particulièrement vrai pour toutes les variables servant de base pour une boucle ou pour un index qui est recalculé à chaque itération.

Je sais, l'effort de saisie est plus important et il ne faut pas oublier le %, mais heureusement, Panoramic est là pour sursauter sur un "i" si "i%" a été déclaré.

Dans la même veine (et juste pour le plaisir), il vaut mieux faire i%=i%+i% au lieu de i%=i%*2. Il y a d'autres techniques d'optimisation; je ne mentionnerai que celle qui consiste à stocker dans une variable séparée une expression d'indice réutilisée à deux ou plusieurs endroits dans une boucle. Le résultat est nettement visible.
Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html
jjn4

jjn4


Nombre de messages : 2747
Date d'inscription : 13/09/2009

cryptage - Cryptage/décryptage d'un fichier quelconque Empty
MessageSujet: +++   cryptage - Cryptage/décryptage d'un fichier quelconque EmptyJeu 15 Avr 2010 - 0:04

Citation :
stocker dans une variable séparée une expression d'indice réutilisée à deux ou plusieurs endroits dans une boucle
Je crois que je comprendrai mieux avec un exemple.
jocolor

@JL35: intéressant, j'avais déjà utilisé un truc comme ça,
mais je n'avais pas pensé à filebin,
ça devrait être plus rapide, surtout avec les astuces de Klaus.

Ouh, on va pouvoir faire des super programmes confidentiels avec ça !
king


Dernière édition par jjn4 le Jeu 15 Avr 2010 - 0:15, édité 1 fois
Revenir en haut Aller en bas
http://jjn4.e-monsite.com
JL35




Nombre de messages : 7112
Localisation : 77
Date d'inscription : 29/11/2007

cryptage - Cryptage/décryptage d'un fichier quelconque Empty
MessageSujet: Re: Cryptage/décryptage d'un fichier quelconque   cryptage - Cryptage/décryptage d'un fichier quelconque EmptyJeu 15 Avr 2010 - 0:12

@Klaus tu as évidemment raison en ce qui concerne l'utilisation de variables entières, là c'était un exemple vite fait.
Tiens, il faudra que je mesure la différence de temps d'exécution en fonction du type de variable.
Mais c'est de toutes façons assez lent, l'accès octet par octet du fichier.
L'intérêt de la technique XOR c'est que c'est parfaitement réversible.
Revenir en haut Aller en bas
jjn4

jjn4


Nombre de messages : 2747
Date d'inscription : 13/09/2009

cryptage - Cryptage/décryptage d'un fichier quelconque Empty
MessageSujet: +++   cryptage - Cryptage/décryptage d'un fichier quelconque EmptyJeu 15 Avr 2010 - 0:18

Ah, pas si lent que ça, je pense !
L'important, c'est que l'utilisateur ne remarque pas une attente trop perceptible,
et pour des fichiers pas trop gigantesque, ça doit être bon.
Revenir en haut Aller en bas
http://jjn4.e-monsite.com
JL35




Nombre de messages : 7112
Localisation : 77
Date d'inscription : 29/11/2007

cryptage - Cryptage/décryptage d'un fichier quelconque Empty
MessageSujet: Re: Cryptage/décryptage d'un fichier quelconque   cryptage - Cryptage/décryptage d'un fichier quelconque EmptyJeu 15 Avr 2010 - 0:26

Et puis pour un fichier donné on ne le fait qu'une fois, alors quelques secondes de traitement...
Revenir en haut Aller en bas
jjn4

jjn4


Nombre de messages : 2747
Date d'inscription : 13/09/2009

cryptage - Cryptage/décryptage d'un fichier quelconque Empty
MessageSujet: +++   cryptage - Cryptage/décryptage d'un fichier quelconque EmptyJeu 15 Avr 2010 - 0:29

Euh... là je ne sais pas,
dans l'utilisation de textes confidentiels et "vivants" en quelque sorte,
on peut le reprendre à tout moment, corriger une partie antérieure,
cela peut donner de nombreuses utilisations.
Revenir en haut Aller en bas
http://jjn4.e-monsite.com
JL35




Nombre de messages : 7112
Localisation : 77
Date d'inscription : 29/11/2007

cryptage - Cryptage/décryptage d'un fichier quelconque Empty
MessageSujet: Re: Cryptage/décryptage d'un fichier quelconque   cryptage - Cryptage/décryptage d'un fichier quelconque EmptyJeu 15 Avr 2010 - 0:33

Ca dépend évidemment de l'utilisation...
Je reprends mon exemple, il semble qu'une étiquette (Codbin: ) ne supporte pas de commentaire à côté, ça fait une erreur ?

C'est drôle, mais si je rajoute le suffixe % à toutes les variables nombres, il n'y a aucune différence mesurable de temps de traitement ...!
Revenir en haut Aller en bas
jjn4

jjn4


Nombre de messages : 2747
Date d'inscription : 13/09/2009

cryptage - Cryptage/décryptage d'un fichier quelconque Empty
MessageSujet: +++   cryptage - Cryptage/décryptage d'un fichier quelconque EmptyJeu 15 Avr 2010 - 0:39

Eh non, c'est qu'il faut mettre un 2° :
exemple :
boucle: : ' Commentaire
jocolor
Revenir en haut Aller en bas
http://jjn4.e-monsite.com
JL35




Nombre de messages : 7112
Localisation : 77
Date d'inscription : 29/11/2007

cryptage - Cryptage/décryptage d'un fichier quelconque Empty
MessageSujet: Re: Cryptage/décryptage d'un fichier quelconque   cryptage - Cryptage/décryptage d'un fichier quelconque EmptyJeu 15 Avr 2010 - 0:40

Ah bon ! ce n'est pas très joli...
Allez Sleep
Revenir en haut Aller en bas
jjn4

jjn4


Nombre de messages : 2747
Date d'inscription : 13/09/2009

cryptage - Cryptage/décryptage d'un fichier quelconque Empty
MessageSujet: +++   cryptage - Cryptage/décryptage d'un fichier quelconque EmptyJeu 15 Avr 2010 - 0:42

Pour constater une différence,
il doit falloir d'abord éliminer toute utilisation de chaîne dans la boucle.
mp$, mid$(..., len(mp$)...
geek


Dernière édition par jjn4 le Jeu 15 Avr 2010 - 0:48, édité 3 fois
Revenir en haut Aller en bas
http://jjn4.e-monsite.com
jjn4

jjn4


Nombre de messages : 2747
Date d'inscription : 13/09/2009

cryptage - Cryptage/décryptage d'un fichier quelconque Empty
MessageSujet: +++   cryptage - Cryptage/décryptage d'un fichier quelconque EmptyJeu 15 Avr 2010 - 0:43

On se croise,
c'est exact, ça fait bizarre...
Suspect
Revenir en haut Aller en bas
http://jjn4.e-monsite.com
jjn4

jjn4


Nombre de messages : 2747
Date d'inscription : 13/09/2009

cryptage - Cryptage/décryptage d'un fichier quelconque Empty
MessageSujet: +++   cryptage - Cryptage/décryptage d'un fichier quelconque EmptyJeu 15 Avr 2010 - 1:41

J'ai essayé sur un fichier txt gigantesque (146 Ko) :

Avec ta formule : 30 sec
Avec la même ne comportant pas de chaîne et n'ayant que des % : 25 sec
Cela fait 17% de mieux, pas terrible !
Qui dit mieux ?
bounce
Revenir en haut Aller en bas
http://jjn4.e-monsite.com
Klaus

Klaus


Nombre de messages : 12331
Age : 75
Localisation : Ile de France
Date d'inscription : 29/12/2009

cryptage - Cryptage/décryptage d'un fichier quelconque Empty
MessageSujet: Optimisation en temps d'exécution   cryptage - Cryptage/décryptage d'un fichier quelconque EmptyJeu 15 Avr 2010 - 8:09

Voici un exemple d'optimisation:
Code:

' Cryptage/décryptage d'un fichier texte ou binaire
DIM mp$, i%, j%, v%, vc%, f$, fc$, fd$, f1$, f2$, len_mp%
DIM val_mp%(50)
LABEL Codbin

mp$ = "MotDePasse": ' Code de cryptage, plus c'est long, mieux c'est
len_mp% = len(mp$)
for i%=1 to len_mp%
    val_mp%(i%) = ASC(MID$(mp$,i%,1))
next i%

f$ = "C:\Textes\Lorem.txt": ' fichier à crypter
fc$ = "Z:\Fcod"
fd$ = "Z:\Fdec.txt"

PRINT "Codage..."
f1$ = f$: f2$ = fc$: GOSUB Codbin
PRINT "Décodage..."
f1$ = fc$: f2$ = fd$: GOSUB Codbin
PRINT "Terminé !"
END

Codbin: ' cryptage/décryptage (symétrique)
FILEBIN_OPEN_READ 1, f1$: FILEBIN_OPEN_WRITE 2, f2$
j% = 1
FOR i% = 1 TO FILEBIN_SIZE(1)
    FILEBIN_READ 1, v%
    vc% = BIN_XOR(v%,  val_mp%(j%))
    FILEBIN_WRITE 2, vc%
    j% = j% + 1: IF j% > len_mp% THEN j% = 1
NEXT i%
FILEBIN_CLOSE 1: FILEBIN_CLOSE 2
RETURN

Il n'y a plus de variables à virgule flottante, le calcul de len(mp$) est fait une fois pour toutes, et la clé de cryptage est converti en tableau de valeurs antières au début du programme. Résultat: plus de traitement de chaînes de caractères dans la boucle. Evidemment, plus le fichier est long, plus la différence est sensible. Même quelques dizaines de ko ne sont pas bien gris. Essaie avec une photo...
Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html
JL35




Nombre de messages : 7112
Localisation : 77
Date d'inscription : 29/11/2007

cryptage - Cryptage/décryptage d'un fichier quelconque Empty
MessageSujet: Re: Cryptage/décryptage d'un fichier quelconque   cryptage - Cryptage/décryptage d'un fichier quelconque EmptyJeu 15 Avr 2010 - 10:49

Tu as raison, je crois qu'on ne peut guère faire mieux comme optimisation.
PS sur un fichier de 159k je n'ai trouvé que 12% de gain de temps (36s au lieu de 41s) en précalculant dans un tableau les valeurs binaires du mot de cryptage (méthode Klaus). C'est un peu décevant, mais je pense qu'on perd l'essentiel du temps dans les accès disque octet par octet, le travail sur les chaînes n'est pas si pénalisant que ça.
Imaginez qu'on puisse lire le fichier d'un coup dans une variable, coder cette variable, puis la réécrire d'un coup, le traitement serait quasiment instantané: je l'ai fait dans un autre basic (freebasic), et c'est immédiat.

Je précise également que cette méthode XOR n'est pas trop adaptée aux fichiers binaires, because s'il y a de grandes plages d'octets à 0, le mot de cryptage apparaîtra en clair dans ces plages dans le fichier codé (ça n'est valable que pour des gens mal intentionnés qui voudraient décortiquer le fichier codé).
Revenir en haut Aller en bas
jjn4

jjn4


Nombre de messages : 2747
Date d'inscription : 13/09/2009

cryptage - Cryptage/décryptage d'un fichier quelconque Empty
MessageSujet: +++   cryptage - Cryptage/décryptage d'un fichier quelconque EmptyJeu 15 Avr 2010 - 12:21

C'est ça, c'est la formule avec laquelle j'avais fait le calcul.
Il me semble que les if... then... prennent également pas mal de temps,
je crois qu'il devrait être possible de remplacer ça par une formule mathémathique simple,
mais mes maths sont loin, je ne me rappelle plus comment faire.

Mais de toute façon, je pense que ça ne ferait que grignoter
encore 2 ou 3 secondes, pas plus.
C'est désespérant.
Crying or Very sad
@JL35:
pour le XOR tu as raison, c'est d'un cryptage un peu simpliste,
mais il ne s'agit pas de traiter des documents de "très haute sécurité"
(attention, le FBI nous observe)
Laughing
Revenir en haut Aller en bas
http://jjn4.e-monsite.com
jjn4

jjn4


Nombre de messages : 2747
Date d'inscription : 13/09/2009

cryptage - Cryptage/décryptage d'un fichier quelconque Empty
MessageSujet: ---   cryptage - Cryptage/décryptage d'un fichier quelconque EmptyJeu 15 Avr 2010 - 16:27

J'ai trouvé une formule mathématique permettant de remplacer if...then...

Remplacer alors :
Code:
j%=j%+1 : if j%>mp% then j%=1
par
Code:
j%=j%-int(j%/10)*10+1

Mais j'ai mesuré, 28" au lieu de 26"
finalement, c'est plus lent,
alors j'ai rien dit... !
Embarassed
Revenir en haut Aller en bas
http://jjn4.e-monsite.com
JL35




Nombre de messages : 7112
Localisation : 77
Date d'inscription : 29/11/2007

cryptage - Cryptage/décryptage d'un fichier quelconque Empty
MessageSujet: Re: Cryptage/décryptage d'un fichier quelconque   cryptage - Cryptage/décryptage d'un fichier quelconque EmptyJeu 15 Avr 2010 - 16:51

Ça tombe bien, parce qu'on n'a rien entendu.
Oui le cryptage est basique, mais ça suffit largement pour un usage ... familial. Ce n'est pas pour la liste des clients d'une banque suisse.
Revenir en haut Aller en bas
Yannick




Nombre de messages : 8635
Age : 53
Localisation : Bretagne
Date d'inscription : 15/02/2010

cryptage - Cryptage/décryptage d'un fichier quelconque Empty
MessageSujet: Re: Cryptage/décryptage d'un fichier quelconque   cryptage - Cryptage/décryptage d'un fichier quelconque EmptyVen 16 Avr 2010 - 17:45

Et voilà , je lis un post et hop une idée vient sunny puis c'est l'insomnie.
Bon je me suis amusé à concentrer des bouts de code de tout le monde et vous verrez je commence à comprendre le Klauss'ien' et cà donne cà :
Code:
dim ecranL,ecranT
dim a$,b$,doss$,cx
dim code$,visible%,affich$
DIM mp$, i%, j%, v%, vc%, f$, fc$, fd$, f1$, f2$, len_mp%
DIM val_mp%(50),act$
code$="#1971#"
affich$=""
label Nouv,Ouvrir,Ouvrir2,Enrgt,Quit,Crypt,Decrypt,Mail,Charg_list
label digicode,clk1,clk2,clk3,clk4,clk5,clk6,clk7,clk8,clk9,clk10,clk11,clk12
label Codbin,clef
caption 0,"Messages secrets"
height 0,550:width 0,760
ecranL=(screen_x-760)/2:ecranT=(screen_y-550)/2
top 0,ecranT:left 0,ecranL

main_menu 1
 sub_menu 2:caption 2,"Fichier"          :parent 2,1
 sub_menu 3:caption 3,"Nouveau"          :parent 3,2  :on_click 3,Nouv
 sub_menu 5:caption 5,"Enregistrer"      :parent 5,2  :on_click 5,Enrgt
 sub_menu 6:caption 6,"Quitter"          :parent 6,2  :on_click 6,Quit
 sub_menu 7:caption 7,"Edition"          :parent 7,1
 sub_menu 8:caption 8,"Cryptage"          :parent 8,7  :on_click 8,Crypt
 sub_menu 9:caption 9,"Décryptage"        :parent 9,7  :on_click 9,Decrypt
 sub_menu 10:caption 10,"Options"        :parent 10,1
 sub_menu 11:caption 11,"Envoyer par mail":parent 11,10 :on_click 11,Mail
 
alpha 12:caption 12,"Messages édités":font_name 12,"arial":top 12,15:left 12,15
list 13:top 13,35:left 13,15:width 13,170:height 13,200:color 13,254,250,131
font_color 13,0,0,255 :font_name 13,"Times new roman":font_size 13,10:on_click 13,Ouvrir

alpha 14:caption 14,"Messages reçus":font_name 14,"arial":top 14,250:left 14,15

list 15:top 15,270:left 15,15:width 15,170:height 15,200:color 15,254,250,131
font_color 15,255,0,0:font_name 15,"Times new roman":font_size 15,10:on_click 15,Ouvrir2

alpha 16:caption 16,"Corps du message":font_name 16,"arial":top 16,15:left 16,220

memo 17:top 17,35:left 17,220 :height 17,435:width 17,500
font_name 17,"Times new roman":font_size 17,10:font_color 17,91,1,72:color 17,254,250,131

gosub Charg_list
end

 Charg_list:
 doss$=dir_current$
 clear 13
 dir_change "Edit"
 item_add 13,file_find_first$
 a$=file_find_next$
 while a$<>"_"
 item_add 13,a$
 a$=file_find_next$
 end_while
 file_find_close
 dir_change doss$
 clear 15
 dir_change "Recep"
 item_add 15,file_find_first$
 b$=file_find_next$
 while b$<>"_"
 item_add 15,b$
 b$=file_find_next$
 end_while
 file_find_close
 dir_change doss$
 return
 
 Nouv:
 cx=message_confirmation_yes_no("Voulez vous enregistrer le texte édité ?")
 if cx=1
 gosub Enrgt
 else
 clear 17
 end_if
 return
 
 Ouvrir:
 if item_index$(13)<>"_"
 clear 17
 file_load 17,"Edit\"+item_index$(13)
 end_if
 return
 
 Ouvrir2:
 if item_index$(15)<>"_"
 clear 17
 file_load 17,"Recep\"+item_index$(15)
 end_if
 return
 
 Enrgt:
 cx=message_input("Nommer le fichier","Nom du fichier :","")
 if cx=1
 file_save 17,"Edit\"+message_text$+".txt"
 clear 17
 gosub charg_list
 end_if
 return
 
digicode:
visible%=1
form 20
height 20,210:width 20,140
top 20,260:left 20,450
command_target_is 20
button 21 :width 21,25  :top 21,45  :left 21,15  :caption 21,"1"  :cursor_point 21  :on_click 21,clk1
button 22 :width 22,25  :top 22,45  :left 22,45  :caption 22,"2"  :cursor_point 22  :on_click 22,clk2
button 23 :width 23,25  :top 23,45  :left 23,75  :caption 23,"3"  :cursor_point 23  :on_click 23,clk3
button 24 :width 24,25  :top 24,75  :left 24,15  :caption 24,"4"  :cursor_point 24  :on_click 24,clk4
button 25 :width 25,25  :top 25,75  :left 25,45  :caption 25,"5"  :cursor_point 25  :on_click 25,clk5
button 26 :width 26,25  :top 26,75  :left 26,75  :caption 26,"6"  :cursor_point 26  :on_click 26,clk6
button 27 :width 27,25  :top 27,105 :left 27,15  :caption 27,"7"  :cursor_point 27  :on_click 27,clk7
button 28 :width 28,25  :top 28,105 :left 28,45  :caption 28,"8"  :cursor_point 28  :on_click 28,clk8
button 29 :width 29,25  :top 29,105 :left 29,75  :caption 29,"9"  :cursor_point 29  :on_click 29,clk9
button 30:width 30,25  :top 30,135 :left 30,15  :caption 30,"0"  :cursor_point 30 :on_click 30,clk10
button 31:width 31,25  :top 31,135 :left 31,45  :caption 31,"#"  :cursor_point 31 :on_click 31,clk11
button 32:width 32,25  :top 32,135 :left 32,75  :caption 32,"Ok" :cursor_point 32 :on_click 32,clk12
edit 33  :width 33,85  :top 33,15  :left 33,15  :secret_on 33:font_name 33,"arial":font_bold 33:text 33,"******"
color 33,199,199,255
return

clk1:
affich$=affich$+"1"
text 33,affich$
return
clk2:
affich$=affich$+"2"
text 33,affich$
return
clk3:
affich$=affich$+"3"
text 33,affich$
return
clk4:
affich$=affich$+"4"
text 33,affich$
return
clk5:
affich$=affich$+"5"
text 33,affich$
return
clk6:
affich$=affich$+"6"
text 33,affich$
return
clk7:
affich$=affich$+"7"
text 33,affich$
return
clk8:
affich$=affich$+"8"
text 33,affich$
return
clk9:
affich$=affich$+"9"
text 33,affich$
return
clk10:
affich$=affich$+"0"
text 33,affich$
return
clk11:
affich$=affich$+"#"
text 33,affich$
return
clk12:
if affich$=code$
hide 20
command_target_is 0
gosub clef
else
cx=message_confirmation_yes_no("Voulez vous réessayer")
  if cx=1
  text 33,""
  affich$=""
  else
  hide 20
  gosub quit
  end_if
end_if
return

clef:
mp$ = affich$:' Code de cryptage, plus c'est long, mieux c'est
len_mp% = len(mp$)
for i%=1 to len_mp%
    val_mp%(i%) = ASC(MID$(mp$,i%,1))
next i%


if act$="code"

file_save 17,doss$+"\Base.txt"
f$ = doss$+"\Base.txt"
fc$ = doss$+"\Fcod"

f1$ = f$: f2$ = fc$: GOSUB Codbin

file_load 17,doss$+"\Fcod"
file_delete doss$+"\Base.txt"
file_delete doss$+"\Fcod"

else
file_save 17,doss$+"\Fcod"
fc$ = doss$+"\Fcod"
fd$ = doss$+"\Fdec.txt"

f1$ = fc$: f2$ = fd$: GOSUB Codbin

file_load 17,doss$+"\Fdec.txt"
file_delete doss$+"\Fcod"
file_delete doss$+"\Fdec.txt"

end_if
return

Codbin:
FILEBIN_OPEN_READ 1, f1$: FILEBIN_OPEN_WRITE 2, f2$
j% = 1
FOR i% = 1 TO FILEBIN_SIZE(1)
    FILEBIN_READ 1, v%
    vc% = BIN_XOR(v%,  val_mp%(j%))
    FILEBIN_WRITE 2, vc%
    j% = j% + 1: IF j% > len_mp% THEN j% = 1
NEXT i%
FILEBIN_CLOSE 1: FILEBIN_CLOSE 2
return

 Crypt:
 act$="code"
 if visible%=1
 show 20
 affich$=""
 else
 gosub digicode
 end_if
 return
 
 Decrypt:
 act$="decode"
 if visible%=1
 show 20
 affich$=""
 else
 gosub digicode
 end_if
 return
 
 Mail:
 cx=message_input("Envoyer par mail","Destinataire :","")
 if cx=1
 execute "mailto:"+message_text$+"?subject=Message&body="+text$(17)
 end_if
 return
 
 Quit:
 terminate

Bon pour que celà fonctionne il vous faut
un dossier source ou vous mettez le code.bas ,et deux sous dossier nommés "Recep" et "Edit"
le premier est pour des messages recus l'autre pour ceux créés.

On peut chercher à améliorer, surtout pour la cle de cryptage (#1971#) qui est là comprise dans le code source et que l'on peut vouloir changer.

je vous laisse découvrir le fruit de mon accouchement nocturne et j'attends avec impatience vos (bon je l'espère)commentaires.

Ps la fermeture en cas de mauvais code n'est pas un bug.

Merci à tous pour les bouts de codes
Revenir en haut Aller en bas
jjn4

jjn4


Nombre de messages : 2747
Date d'inscription : 13/09/2009

cryptage - Cryptage/décryptage d'un fichier quelconque Empty
MessageSujet: +++   cryptage - Cryptage/décryptage d'un fichier quelconque EmptyVen 16 Avr 2010 - 18:26

Eh, c'est sympa, ton programme !
Si je comprends bien, le but, c'est de s'échanger entre nous des messages codés par mail
et de les décoder comme si on était des agents de bureaux provinciaux du FBI.
(eh, tu aurais pu l'écrire dans un système d'aide, ça)
C'est marrant !
cheers
(dommage que je n'ai pas de trucs vachement secrets à transmettre)
Laughing
Revenir en haut Aller en bas
http://jjn4.e-monsite.com
Klaus

Klaus


Nombre de messages : 12331
Age : 75
Localisation : Ile de France
Date d'inscription : 29/12/2009

cryptage - Cryptage/décryptage d'un fichier quelconque Empty
MessageSujet: Re: Cryptage/décryptage d'un fichier quelconque   cryptage - Cryptage/décryptage d'un fichier quelconque EmptyVen 16 Avr 2010 - 18:57

Oui, je vois que tu as plein d'idées pour paufiner ton programme ! Il est intéressant, et pas seulement pour échanger des messages secrets par mail.

As-tu essayé de comparer l'exécution "ancienne version" avec la version actuelle au niveau des performances, mais avec un gros fichier genre photo qui pèserait quelques 5 Méga-octets ? Bon, ça dépend aussi du système, mais chez moi, je constate une nette amélioration !

Bravo, et continue comme ça !
Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html
Yannick




Nombre de messages : 8635
Age : 53
Localisation : Bretagne
Date d'inscription : 15/02/2010

cryptage - Cryptage/décryptage d'un fichier quelconque Empty
MessageSujet: Re: Cryptage/décryptage d'un fichier quelconque   cryptage - Cryptage/décryptage d'un fichier quelconque EmptySam 17 Avr 2010 - 17:43

@ jjn4 ,

c'était le but de départ mais tu peus aussi envisager des billets doux d'une jolie secretaire.

à une condition , que ta femme soit pas ingénieur informatique .
Le codage ne tiendrait pas 2 minutes.

@ Klauss,

je n'ai pas fait de comparaisons sur de gros fichier du fait que cette petite application est plutôt destiné au mail et que malheureusement certain serveur bloque au niveau de la taille l'expédition des mails.

mais j'ai vu les chronos dans les posts précédent et ta méthode (que j'ai reprise) parait satisfaisante.
maintenant il faudrait que je teste sa rapidité avec les éléments que j'ai ajouter/modifier pour l'affichage à l'écran.


Merci à tous les deux pour avoir pris le temps regarder ma petite création.


PS on peut supprimer la ligne qui clos l'application en cas de non re essai dans le digicode.
Revenir en haut Aller en bas
Contenu sponsorisé





cryptage - Cryptage/décryptage d'un fichier quelconque Empty
MessageSujet: Re: Cryptage/décryptage d'un fichier quelconque   cryptage - Cryptage/décryptage d'un fichier quelconque Empty

Revenir en haut Aller en bas
 
Cryptage/décryptage d'un fichier quelconque
Revenir en haut 
Page 1 sur 1
 Sujets similaires
-
» Cryptage/décryptage
» Embarquer un fichier quelconque
» Insertion d'un petit fichier quelconque dans un programme
» Cryptage en 100 % Panoramic
» Rotation d'une image d'un angle quelconque

Permission de ce forum:Vous ne pouvez pas répondre aux sujets dans ce forum
FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC :: PANORAMIC :: Vos sources, vos utilitaires à partager-
Sauter vers: