Novembre 2024 | Lun | Mar | Mer | Jeu | Ven | Sam | Dim |
---|
| | | | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | | Calendrier |
|
|
| PAC : chiffrage de toute sorte de fichiers | |
| | Auteur | Message |
---|
Marc
Nombre de messages : 2466 Age : 63 Localisation : TOURS (37) Date d'inscription : 17/03/2014
| Sujet: PAC : chiffrage de toute sorte de fichiers Ven 22 Oct 2021 - 22:12 | |
| . AVIS : Le programme -Pac- que vous allez découvrir est un logiciel expérimental et gratuit. Personne ne serait être tenu responsable des dommages ou des pertes de données résultant de son utilisation.
Bonjour à tous ! Après PanoCrypt, voici un autre petit utilitaire de chiffrage de fichier : Pac. Pac est un programme qui sait chiffrer toute sorte de fichiers : exe, pdf, jpg, bmp, docx, … Pac ne modifie pas le fichier original, il crée un nouveau fichier chiffré. Un fichier chiffré Pac prend la forme d’une image bitmap avec l’extension .bmp . CHIFFRAGE : 1) Cliquez dans la zone blanche " Fichier source à traiter :" pour sélectionner le fichier à chiffrer ; 2) Saisissez éventuellement un mot de passe ; 3) Cliquez dans la zone blanche " Destination :" pour définir le répertoire et le nom du fichier une fois chiffré ; 4) Cliquez sur le bouton " Chiffrer le fichier !". La légende de ce bouton vous indiquera la progression en % pendant le processus de chiffrage. DECHIFFRAGE : Effectuez les mêmes manœuvres que pour le chiffrage ! Le programme reconnaîtra s’il est en présence d’un fichier chiffré Pac. Dans ce cas, il passera automatiquement en mode déchiffrage. Le code-source : - Code:
-
' PAC : Chiffrer un fichier sous forme d'image BMP ' Marc - octobre 2021 dim nomAbsoluFichierSource$, nomAbsoluFichierDestination$, nomNatifFichier$, flagMdp% dim fichierPac%, tailleFichier%
label ouvrir, destination, afficherMdP, chiffrerDechiffrer, redim, quitter
interfaceUtilisateur()
end
sub interfaceUtilisateur() caption 0,"PAC : Chiffrer un fichier" width 0,width(0) - width_client(0) + 750 height 0,height(0) - height_client(0) + 280 left 0,(screen_x - width(0)) / 2 top 0,(screen_y - height(0)) / 2 color 0,230,230,230 font_name 0,"Arial" font_size 0,"10" on_resize 0,redim on_close 0,quitter
alpha 1 top 1,30 left 1,33 caption 1,"Fichier source à traiter :"
picture 2 height 2,24 width 2,690 left 2,30 top 2,50 color 2,255,255,255 cursor_point 2 on_click 2,ouvrir alpha 3 left 3,32 top 3,54 color 3,255,255,255 cursor_point 3 on_click 3,ouvrir
alpha 4 top 4,104 left 4,194 caption 4,"Mot de passe :" edit 5 width 5,180 height 5,24 top 5,100 left 5,284 secret_on 5 picture 6 width 6,28 height 6,28 top 6,100 left 6,469 color 6,230,230,230 2d_target_is 6 2d_pen_color 0,0,0 2d_line 12,7,17,7 2d_line 10,8,13,8 2d_line 16,8,19,8 2d_line 8,9,11,9 2d_line 18,9,21,9 2d_line 7,10,9,10 2d_line 20,10,22,10 2d_line 6,11,8,11 2d_line 21,11,23,11 2d_line 5,12,7,12 2d_line 22,12,24,12 2d_line 4,13,6,13 2d_line 23,13,25,13 2d_line 5,14,7,14 2d_line 22,14,24,14 2d_line 6,15,8,15 2d_line 21,15,23,15 2d_line 7,16,9,16 2d_line 20,16,22,16 2d_line 8,17,11,17 2d_line 18,17,21,17 2d_line 10,18,13,18 2d_line 16,18,19,18 2d_line 12,19,17,19 ' centre de l'oeil 2d_line 13,10,16,10 2d_line 12,11,14,11 2d_line 15,11,17,11 2d_line 11,12,13,12 2d_line 16,12,18,12 2d_point 11,13 2d_point 17,13 2d_line 11,14,13,14 2d_line 16,14,18,14 2d_line 12,15,14,15 2d_line 15,15,17,15 2d_line 13,16,16,16 cursor_point 6 MotDePasseVisibleOuiNon() on_click 6,afficherMdP alpha 7 top 7,132 left 7,33 caption 7,"Destination :"
picture 8 height 8,24 width 8,690 left 8,30 top 8,152 cursor_point 8 on_click 8,destination
alpha 9 left 9,32 top 9,156 color 9,255,255,255 cursor_point 9 on_click 9,destination button 10 width 10,150 height 10,30 top 10,210 left 10,300 caption 10,"Chiffrer le fichier !" on_click 10,chiffrerDechiffrer
picture 11 hide 11
open_dialog 20 save_dialog 21 end_sub
afficherMdP: MotDePasseVisibleOuiNon() return
sub MotDePasseVisibleOuiNon() 2d_target_is 6 if flagMdP% = 0 secret_on 5 caret_position 5,len(text$(5)) hint 6,"Afficher le mot de passe" flagMdP% = 1 2d_pen_color 255,0,0 2d_line 6,5,23,22 2d_line 7,5,23,21 2d_line 6,6,22,22 else secret_off 5 caret_position 5,len(text$(5)) flagMdP% = 0 hint 6,"Cacher le mot de passe" 2d_pen_color 230,230,230 2d_line 6,5,23,22 2d_line 7,5,23,21 2d_line 6,6,22,22 2d_pen_color 0,0,0 2d_line 9,9,11,9 2d_point 10,8 2d_line 12,11,14,11 2d_line 15,15,17,15 2d_line 18,17,20,17 2d_point 18,18 end_if end_sub
ouvrir: ouvrirFichier() return
sub ouvrirFichier() dim_local tailleHexaFichier$, addenda%(268), longueurfichier%, a$, p%, stringTailleFichier$ dim_local octetHexa1$, octetHexa2$, octetHexa3$, octetHexa4$, index%, annonce$
nomAbsoluFichierSource$ = "" caption 3,nomAbsoluFichierSource$ :' effacer le nom du fichier à traiter text 5,"" :' effacer le mot depasse nomAbsoluFichierDestination$ = "" caption 9,nomAbsoluFichierDestination$ :' effacer le nom de fichier destination fichierPac% = 0 :' le fichier à traiter n'est pas un fichier "Pac" caption 10,"Chiffrer le fichier !" :' légende du bouton nomNatifFichier$ = "" file_dialog 20,"" filter 20,"Tous les types de fichiers (*.*)" nomAbsoluFichierSource$ = file_name$(20)
if nomAbsoluFichierSource$ ="_" nomAbsoluFichierSource$ = "" exit_sub end_if
filebin_open_read 25,nomAbsoluFichierSource$
' vérification que le fichier ne soit pas vide tailleFichier% = filebin_size(25) if tailleFichier% = 0 annonce$ = chr$(34) + nomAbsoluFichierSource$ + chr$(34) + chr$(13) + chr$(13) annonce$ = annonce$ + "Ce fichier est vide, il ne peut pas être chiffré !" if message_warning_ok(annonce$) < 3 nomAbsoluFichierSource$ = "" filebin_close 25 exit_sub end_if end_if
' ///// déterminer si le fichier choisi est chiffré "Pac" ///// ' vérifier si le fichier est un ".bmp" a$ = upper$(nomAbsoluFichierSource$) if file_extract_extension$(a$) = ".BMP" ' vérifier si le fichier possède une taille > 300 octets puis lecture des 267 derniers octets if tailleFichier% > 300 filebin_position 25,tailleFichier% - 267 filebin_block_read 25,267,addenda%(1)
' vérifier la présence de l'identificateur "Pac" if addenda%(1)=80 and addenda%(2)=97 and addenda%(3)=99
' extraction taille du fichier natif octetHexa1$ = hex$(addenda%(4)) if len(octetHexa1$) = 1 octetHexa1$ = "0" + octetHexa1$ end_if octetHexa2$ = hex$(addenda%(5)) if len(octetHexa2$) = 1 octetHexa2$ = "0" + octetHexa2$ end_if octetHexa3$ = hex$(addenda%(6)) if len(octetHexa3$) = 1 octetHexa3$ = "0" + octetHexa3$ end_if octetHexa4$ = hex$(addenda%(7)) if len(octetHexa4$) = 1 octetHexa4$ = "0" + octetHexa4$ end_if tailleHexaFichier$ = octetHexa1$ + octetHexa2$ + octetHexa3$ + octetHexa4$ tailleFichier% = hex(tailleHexaFichier$)
' ajout séparateur de milliers pour l'affichage de la taille du fichier stringTailleFichier$ = str$(tailleFichier%) p% = len(stringTailleFichier$)+1 while p% > 4 p% = p% - 3 stringTailleFichier$=insert$(stringTailleFichier$,chr$(32),p%) end_while
' extraction du nom natif du fichier index% = 8 while addenda%(index%) <> 0 nomNatifFichier$ = nomNatifFichier$ + chr$(addenda%(index%)) index% = index% + 1 end_while fichierPac% = 1 end_if end_if end_if filebin_close 25
if fichierPac% = 1 annonce$ = "L'image " + chr$(34) + file_extract_name$(nomAbsoluFichierSource$) + chr$(34) + " est un fichier PAC chiffré." annonce$ = annonce$ + chr$(13) + chr$(13) annonce$ = annonce$ + "- Son nom natif est : " + chr$(34) + nomNatifFichier$ + chr$(34) annonce$ = annonce$ + chr$(13) + chr$(13) annonce$ = annonce$ + "- La taille du fichier est de : " + stringTailleFichier$ + " octets" annonce$ = annonce$ + chr$(13) + chr$(13) annonce$ = annonce$ + "Voulez-vous le déchiffrer ?" if message_information_yes_no(annonce$) <> 1 nomAbsoluFichierSource$ = "" exit_sub end_if caption 10,"Déchiffrer le fichier" end_if
caption 3,nomAbsoluFichierSource$ set_focus 5 end_sub
destination: enregistrerSous() return
sub enregistrerSous() dim_local b$,c$,longueurnomFichier%, n%, pos%, annonce$
' préréglage de l'objet SAVE_DIALOG 21 if fichierPac% = 1 filter 21,"" file_dialog 21,nomNatifFichier$ else filter 21,"Fichier image BMP|*.bmp" file_dialog 21,"" end_if
nomAbsoluFichierDestination$ = file_name$(21)
if nomAbsoluFichierDestination$ = "_" or nomAbsoluFichierDestination$ = "" nomAbsoluFichierDestination$ = "" caption 9,"" exit_sub end_if
' gestion de l'extension du nom de fichier destination b$ = upper$(nomAbsoluFichierDestination$) c$ = upper$(file_extract_extension$(nomNatifFichier$)) if fichierPac% = 0 if file_extract_extension$(b$) <> ".BMP" nomAbsoluFichierDestination$ = nomAbsoluFichierDestination$ + ".bmp" end_if else if file_extract_extension$(b$) <> c$ nomAbsoluFichierDestination$ = nomAbsoluFichierDestination$ + file_extract_extension$(nomNatifFichier$) end_if end_if if nomAbsoluFichierDestination$ = nomAbsoluFichierSource$ annonce$ = "Les noms des fichiers SOURCE et DESTINATION sont identiques !" + chr$(13) + chr$(13) annonce$ = annonce$ + "Impossible de copier un fichier sur lui-même !" if message_warning_ok(annonce$) <> 3 nomAbsoluFichierDestination$ = "" caption 9,"" exit_sub end_if end_if
if file_exists(nomAbsoluFichierDestination$) = 1 annonce$ = chr$(34) + nomAbsoluFichierDestination$ + chr$(34) + chr$(13) + chr$(13) annonce$ = annonce$ + "Ce nom de fichier existe dejà ! Le remplacer ?" if message_warning_yes_no(annonce$) <> 1 nomAbsoluFichierDestination$ = "" caption 9,"" exit_sub end_if end_if
caption 9,nomAbsoluFichierDestination$ end_sub
chiffrerDechiffrer: if nomAbsoluFichierDestination$ = "" or nomAbsoluFichierSource$ = "" return end_if
if fichierPac% = 0 chiffrage() else if fichierPac% = 1 dechiffrage() end_if end_if return
sub chiffrage() dim_local cleHexa$, octet1%, octet2%, octet3%, dimCoteImage%, suffixe%(268) dim_local longueurFichierSourceHexa$, nomRelatifFichierSource$, index%, rang%, annonce$ dim_local longueurFichierSource%, complement%, x%, y%, r%, v%, b%, ratio, n% inactive 0 ' création des clés de chiffrage cleHexa$ = genererCleChiffrage$(text$(5)) octet1% = hex(left$(cleHexa$,2)) octet2% = hex(mid$(cleHexa$,3,2)) octet3% = hex(right$(cleHexa$,2))
' ouverture fichier source binaire à chiffrer filebin_open_read 23,nomAbsoluFichierSource$
' calcul de la dimension de l'image carrée qui sera produite longueurFichierSource% = filebin_size(23) dimCoteImage% = int(sqr((longueurFichierSource%+2)/3)) if (dimCoteImage%*dimCoteImage%) < longueurFichierSource%/3 dimCoteImage% = dimCoteImage% + 1 end_if
' dimensionnement du picture accueillant l'image height 11,dimCoteImage% width 11,dimCoteImage% 2d_target_is 11
' dessiner l'image ratio = dimCoteImage%*dimCoteImage% / 100 :' utilisé pour le calcul du % d'avancement du chiffrage du fichier
if text$(5) = "" ' dessiner l'image sans mot de passe for y% = 0 to dimCoteImage% - 1 for x% = 0 to dimCoteImage% - 1 r% = filebin_read(23) v% = filebin_read(23) b% = filebin_read(23) 2d_pen_color r%,v%,b% 2d_point x%,y% n% = n% + 1 next x% caption 10,str$(int(n% / ratio)) + " %" display next y% else ' dessiner l'image avec mot de passe for y% = 0 to dimCoteImage% - 1 for x% = 0 to dimCoteImage% - 1 r% = bin_xor(filebin_read(23),octet1%) v% = bin_xor(filebin_read(23),octet2%) b% = bin_xor(filebin_read(23),octet3%) 2d_pen_color r%,v%,b% 2d_point x%,y% n% = n% + 1 next x% caption 10,str$(int(n% / ratio)) + " %" display next y% end_if
caption 10,"100 %" ' enregistrement de l'image créée file_save 11,nomAbsoluFichierDestination$
' Ajout d'une trame de 268 octets au bout du fichier image BMP dans lequel sont chiffrés la taille du fichier ' d'origine + son nom ' format suffixe : 3 octets d'identification (Pac) ' 4 octets big-endian : longueur du fichier source ' de 1 à 260 octets : nom du fichier source ' complétion par octet NULL pour atteindre un total de 268 octets.
' creer identificateur : 3 octets suffixe%(1) = asc("P") suffixe%(2) = asc("a") suffixe%(3) = asc("c") ' creer 4 octets (ordre big_endian) indiquant la longueur en octets du fichier source longueurFichierSource% = filebin_size(23) longueurFichierSourceHexa$ = hex$(longueurFichierSource%) while len(longueurFichierSourceHexa$) < 8 longueurFichierSourceHexa$ = "0" + longueurFichierSourceHexa$ end_while suffixe%(4) = hex(left$(longueurFichierSourceHexa$,2)) suffixe%(5) = hex(mid$(longueurFichierSourceHexa$,3,2)) suffixe%(6) = hex(mid$(longueurFichierSourceHexa$,5,2)) suffixe%(7) = hex(right$(longueurFichierSourceHexa$,2))
' nom du fichier source nomRelatifFichierSource$ = file_extract_name$(nomAbsoluFichierSource$) index% = 8 for rang% = 1 to len(nomRelatifFichierSource$) suffixe%(index%) = asc(mid$(nomRelatifFichierSource$,rang%,1)) index% = index% + 1 next rang% ' complétion while index% < 269 suffixe%(index%) = 0 index% = index% + 1 end_while filebin_open_write 24,nomAbsoluFichierDestination$ filebin_position 24,filebin_size(24) filebin_block_write 24,267,suffixe%(1) filebin_close 24 filebin_close 23 annonce$ = "Chiffrage effectué !" + chr$(13) + chr$(13) annonce$ = annonce$ + "Retrouvez votre fichier ici :" + chr$(13) + chr$(13) annonce$ = annonce$ + chr$(34) + nomAbsoluFichierDestination$ +chr$(34) message annonce$
nomAbsoluFichierSource$ = "" caption 3,nomAbsoluFichierSource$ :' effacer le nom du fichier à traiter text 5,"" :' effacer le mot depasse nomAbsoluFichierDestination$ = "" caption 9,nomAbsoluFichierDestination$ :' effacer le nom de fichier destination fichierPac% = 0 :' le fichier à traiter n'est pas un fichier "Pac" caption 10,"Chiffrer le fichier !" :' légende du bouton nomNatifFichier$ = "" active 0 end_sub
sub dechiffrage() dim_local cleHexa$, annonce$, octet1%, octet2%, octet3%, y%, x%, index% dim_local enteteFichier%(25), l%, h%, ratio inactive 0
' effacer le fichier destination s'il existe déjà if file_exists(nomAbsoluFichierDestination$) = 1 file_delete nomAbsoluFichierDestination$ end_if ' creation des clés de déchiffrage cleHexa$ = genererCleChiffrage$(text$(5)) octet1% = hex(left$(cleHexa$,2)) octet2% = hex(mid$(cleHexa$,3,2)) octet3% = hex(right$(cleHexa$,2))
' lecture entête fichier à déchiffrer filebin_open_read 26,nomAbsoluFichierSource$ filebin_block_read 26,25,enteteFichier%(0) filebin_close 26
' vérifier la conformité du fichier if enteteFichier%(0) <> 66 and enteteFichier%(1) <> 77 MessageFichierCorrompu() active 0 exit_sub end_if
' lecture des dimensions de l'image l% = hex(hex$(enteteFichier%(21)) + hex$(enteteFichier%(20)) + hex$(enteteFichier%(19)) + hex$(enteteFichier%(18))) h% = hex(hex$(enteteFichier%(25)) + hex$(enteteFichier%(24)) + hex$(enteteFichier%(23)) + hex$(enteteFichier%(22)))
if l% <> h% MessageFichierCorrompu() active 0 exit_sub end_if
width 11,l% height 11,h%
' chargement du fichier à déchiffrer dans l'objet PICTURE 11 file_load 11,nomAbsoluFichierSource$
' créer le fichier binaire en écriture filebin_open_write 27,nomAbsoluFichierDestination$ filebin_position 27,0 ' déchiffrer l'image de l'objet PICTURE 11 ratio = tailleFichier% / 100 :' utilisé pour le calcul du % d'avancement du déchiffrage if text$(5) = "" ' déchiffrer sans mot de passe index% = 0 for y% = 0 to h% - 1 for x% = 0 to l% - 1 filebin_write 27,color_pixel_red(11,x%,y%) index% =index% + 1 if index% = tailleFichier% exit_for end_if filebin_write 27,color_pixel_green(11,x%,y%) index% = index% + 1 if index% = tailleFichier% exit_for end_if filebin_write 27,color_pixel_blue(11,x%,y%) index% = index% + 1 if index% = tailleFichier% exit_for end_if next x% if index% = tailleFichier% exit_for end_if caption 10,str$(int(index% / ratio)) + " %" display next y% else ' déchiffrer avec mot de passe index% = 0 for y% = 0 to h% - 1 for x% = 0 to l% - 1 filebin_write 27,bin_xor(color_pixel_red(11,x%,y%),octet1%) index% =index% + 1 if index% = tailleFichier% exit_for end_if filebin_write 27,bin_xor(color_pixel_green(11,x%,y%),octet2%) index% =index% + 1 if index% = tailleFichier% exit_for end_if filebin_write 27,bin_xor(color_pixel_blue(11,x%,y%),octet3%) index% =index% + 1 if index% = tailleFichier% exit_for end_if next x% if index% = tailleFichier% exit_for end_if caption 10,str$(int(index% / ratio)) + " %" display next y% end_if
caption 10,"100 %" filebin_close 27
annonce$ = "Déchiffrage effectué !" + chr$(13) + chr$(13) annonce$ = annonce$ + "Retrouvez votre fichier ici :" + chr$(13) + chr$(13) annonce$ = annonce$ + chr$(34) + nomAbsoluFichierDestination$ +chr$(34) message annonce$
nomAbsoluFichierSource$ = "" caption 3,nomAbsoluFichierSource$ :' effacer le nom du fichier à traiter text 5,"" :' effacer le mot depasse nomAbsoluFichierDestination$ = "" caption 9,nomAbsoluFichierDestination$ :' effacer le nom de fichier destination fichierPac% = 0 :' le fichier à traiter n'est pas un fichier "Pac" caption 10,"Chiffrer le fichier !" :' légende du bouton nomNatifFichier$ = "" active 0 end_sub
fnc genererCleChiffrage$(mdp$) dim_local cle24Bits, clefHexa$, c$, p%, i%, j%, t$
for i% = 1 to len(mdp$) c$ = mid$(mdp$,i%,1) t$ = t$ + hex$(asc(c$)) next i%
p% = 1 cle24Bits = hex("e959e3")
for i% = len(t$) to 1 step -2 c$ = mid$(t$,p%,2) cle24Bits = bin_xor(cle24Bits,hex(c$)) p% = P% + 2 for j% = 0 to 7 if bin_and(cle24Bits,hex("000001")) = 1 cle24Bits = bin_xor(int(cle24Bits/2),hex("5D6DCB")) else cle24Bits = int(cle24Bits/2) end_if next j% next i%
clefHexa$ = hex$(cle24Bits)
while len(clefHexa$) < 6 clefHexa$ = "0" + clefHexa$ end_while
result clefHexa$ end_fnc
sub MessageFichierCorrompu() if message_warning_ok("Impossible de déchiffrer ce fichier !") < 2 end_if end_sub
redim: width 0,width(0) - width_client(0) + 750 height 0,height(0) - height_client(0) + 280 return
quitter: close_inactive if nomAbsoluFichierDestination$ <> "" or nomAbsoluFichierSource$ <> "" if message_warning_yes_no("Vous avez commencé une tâche, voulez-vous quitter quand même ?") <> 1 return end_if end_if close_active return
Voilà, il n’y a plus qu’à tester ! Si vous rencontrez une anomalie de fonctionnement ou si vous souhaitez en savoir plus sur la technique employée, dites-le moi ! A bientôt !
Dernière édition par Marc le Dim 31 Oct 2021 - 11:14, édité 1 fois | |
| | | JL35
Nombre de messages : 7112 Localisation : 77 Date d'inscription : 29/11/2007
| Sujet: Re: PAC : chiffrage de toute sorte de fichiers Ven 22 Oct 2021 - 22:45 | |
| Merci Marc, on va regarder ça de près
A première vue, impeccable et très rapide ! J'avais fait un truc du même genre mais je n'avais pas finalisé... Ton programme est super, avec en plus la possibilité de crypter sans mot de passe. Encore merci Marc, j'adopte ! | |
| | | jean_debord
Nombre de messages : 1266 Age : 70 Localisation : Limoges Date d'inscription : 21/09/2008
| Sujet: Re: PAC : chiffrage de toute sorte de fichiers Sam 23 Oct 2021 - 9:12 | |
| Bonjour Marc,
Pourrait-on faire la même chose en Base64 (coder le fichier en Base64, puis le décoder sous forme d'image) ? | |
| | | Minibug
Nombre de messages : 4570 Age : 58 Localisation : Vienne (86) Date d'inscription : 09/02/2012
| Sujet: Re: PAC : chiffrage de toute sorte de fichiers Sam 23 Oct 2021 - 9:49 | |
| Bonjour Marc J'ai testé avec un fichier ODT (Open office) de 330ko et plus de 200 pages de texte. J'ai codé avec ou sans mdp et ça fonctionne parfaitement ! Juste quelques secondes de conversion dans un sens comme dans l'autre. C'est beaucoup plus pratique qu'avec le memo. Le but étant de coder ou décoder. Et donc c'est parfait ! Merci pour cette réalisation Marc. | |
| | | Froggy One
Nombre de messages : 598 Date d'inscription : 06/01/2012
| Sujet: Re: PAC : chiffrage de toute sorte de fichiers Sam 23 Oct 2021 - 18:25 | |
| Idem avec WORD, cela fonctionne très bien !!! super, merci ! | |
| | | Marc
Nombre de messages : 2466 Age : 63 Localisation : TOURS (37) Date d'inscription : 17/03/2014
| Sujet: Re: PAC : chiffrage de toute sorte de fichiers Sam 23 Oct 2021 - 23:01 | |
| Bonjour à tous ! Merci pour vos gentils commentaires et vos retours sur le bon fonctionnement de ce petit programme. - Minibug a écrit:
- C'est dommage que tu abandonnes l'idée du fichier image, c'était la base de PanoCrypt !
Que tu retires le memo ok mais tu devrais garder le principe de sauvegarde en image. Sinon il existe plein de logiciels de cryptage ! Après c'est ton choix.
Oui tu as raison, Minibug, j’ai donc conservé le principe de l’image BMP. - Klaus a écrit:
- Prévois dans ton interface visuelle une barre de progression qui sera utile pour les grands fichiers...
Oui, c'est une bonne idée. J'ai procédé ainsi : lors des opérations de chiffrage et déchiffrage, la légende du (seul) bouton indique la progression en pourcentage. - Spoiler:
- Jean_Debord a écrit:
- Pourrait-on faire la même chose en Base64 (coder le fichier en Base64, puis le décoder sous forme d'image) ?
Oui, tout à fait, mais cela risque d’augmenter la durée des chiffrages et déchiffrages. Tu m’as donné idée de faire un petit codeur expérimental en base64. Je le publie dans quelques minutes… A bientôt ! | |
| | | JL35
Nombre de messages : 7112 Localisation : 77 Date d'inscription : 29/11/2007
| Sujet: Re: PAC : chiffrage de toute sorte de fichiers Lun 25 Oct 2021 - 17:52 | |
| Bizarre, je ne vois nulle part de référence à ces deux instructions CLOSE_INACTIVE (ligne 542) CLOSE_ACTIVE (ligne 536) non répertoriées dans l'aide (Panoramic version 0.9.29i9) et pourtant ça ne cause pas d'erreur à l'exécution... C'est quoi ? | |
| | | Marc
Nombre de messages : 2466 Age : 63 Localisation : TOURS (37) Date d'inscription : 17/03/2014
| Sujet: Re: PAC : chiffrage de toute sorte de fichiers Lun 25 Oct 2021 - 18:10 | |
| | |
| | | JL35
Nombre de messages : 7112 Localisation : 77 Date d'inscription : 29/11/2007
| Sujet: Re: PAC : chiffrage de toute sorte de fichiers Lun 25 Oct 2021 - 19:22 | |
| Merci Marc, je vais regarder ça. Bonne soirée !
PS en effet, ça ne date pas d'hier... | |
| | | jjn4
Nombre de messages : 2747 Date d'inscription : 13/09/2009
| Sujet: Re: PAC : chiffrage de toute sorte de fichiers Sam 30 Oct 2021 - 16:06 | |
| Carrément FA-BU-LIS-SI-ME, ce programme de cryptage ! Bravo, Marc, chapeau bas !!! J'ai tout essayé, les .doc les .txt les .pdf les .bmp les .jpg avec ou sans mot de passe, tout marche super, bravo !!!!!! Petite question : Le cryptage est le même que celui de PanoCrypt ? Petite remarque : Si, une fois un programme codé en bmp, on veut le décoder et qu'on met la copie décodée du fichier au même endroit que l'original et qu'on ne veut pas qu'il écrase l'original, mais qu'il l'enregistre avec un autre nom : par exemple : Fichier.pdf --> PAC.bmp --> Fichier-2.pdf alors, il perd la précision de l'extension et enregistre le nouveau fichier décodé sous le nom de : Fichier-2 (sans extension). Bon, c'est un détail, d'accord, mais avec un truc d'une telle perfection... | |
| | | Marc
Nombre de messages : 2466 Age : 63 Localisation : TOURS (37) Date d'inscription : 17/03/2014
| Sujet: Re: PAC : chiffrage de toute sorte de fichiers Dim 31 Oct 2021 - 11:26 | |
| Bonjour à tous ! Merci JJN4 ! - JJN4 a écrit:
- Le cryptage est le même que celui de PanoCrypt ?
Il y a des similitudes entre le programme PanoCrypt et Pac, mais ils sont totalement incompatibles. Les grandes lignes : J’ai gardé ce principe (sur les conseils de Minibug) : 3 octets codent les valeurs R.V.B. d’un pixel. Dans Pac, c’est une lecture binaire du fichier-source qui est faite, ce qui permet d’encoder n’importe quel type de fichier. A l’image BMP créée, j’ajoute en fin de fichier une trame dans laquelle on retrouve : - un identifiant sur 3 octets qui permet de savoir si le fichier entrant est un "BMP Pac". Le programme ne peut pas confondre un "BMP PAC" avec un BMP ordinaire ; - puis 4 octets informent de la longueur exacte du fichier d’origine ; - et pour finir, un nombre variable d’octets destinés à l’information du nom avec l’extension du fichier d’origine. - JJN4 a écrit:
- Fichier.pdf --> PAC.bmp --> Fichier-2.pdf
alors, il perd la précision de l'extension... Je comprends ton explication. En cas de changement du nom d’origine, je pourrais forcer le nouveau nom à reprendre la même extension que le fichier natif… Ta remarque est très pertinente, je modifie de suite ! Le code-source (situé dans le premier post) a été mis à jour.
Merci JJN4 pour tous tes essais ! | |
| | | jjn4
Nombre de messages : 2747 Date d'inscription : 13/09/2009
| Sujet: Re: PAC : chiffrage de toute sorte de fichiers Dim 31 Oct 2021 - 12:28 | |
| Impecc ! | |
| | | Contenu sponsorisé
| Sujet: Re: PAC : chiffrage de toute sorte de fichiers | |
| |
| | | | PAC : chiffrage de toute sorte de fichiers | |
|
Sujets similaires | |
|
| Permission de ce forum: | Vous ne pouvez pas répondre aux sujets dans ce forum
| |
| |
| |