Un programme que j'ai écrit lorsque je débutais. C'est un exemple simple de chiffrement-déchiffrement avec une clef de 128 bits. Ca a été écrit pour Fasm et WIn32 mais c'est facilement adaptable pour d'autres compilateurs et Linux.
Par contre, ce n'est qu'un exemple, ça doit donc être considéré en tant que tel et non utilisé pour chiffrer des documents. Pour cela, il y a de vrais solutions fiables, comme l'AES par exemple.
Par contre, ce n'est qu'un exemple, ça doit donc être considéré en tant que tel et non utilisé pour chiffrer des documents. Pour cela, il y a de vrais solutions fiables, comme l'AES par exemple.
Code :
format PE console
include 'include/windows/win32a.inc'
entry start
section '.text' code readable executable
start:
stdcall demo,buf1,32,buf2 ;chiffrement des bytes du buf1 vers le buf2
stdcall demo,buf2,32,buf3 ;déchiffrement des bytes du buf2 vers le buf3
cinvoke printf,forms,buf3 ;affichage des bytes déchiffrés du buf3
ret
proc demo inbuf,len,outbuf
mov esi,dword [inbuf]
mov edi,dword [outbuf]
mov ecx,dword [len]
@@:
mov ebx,table
@re:
mov al,byte [ebx]
or al,al
jz @b
inc ebx
shl ax,8
lodsb
cmp al,ah
jz @f
xor al,ah
@@:
stosb
dec ecx
jnz @re
ret
endp
section '.data' data readable writeable
buf1 db 'la petite maison dans la prairie',0
buf2 rb 256
buf3 rb 256
table db 0x7d,0x72,0x6f,0xd7,0x84,0x09,0xb2,0x18,\
0x12,0xd7,0x43,0xf3,0x33,0x1b,0xa4,0x6f
forms db '%s',13,10,0
section '.idata' import data readable writeable
library msvcrt, 'msvcrt.dll'
import msvcrt,\
printf, 'printf'
Connexion ou Inscription pour voir ce contenu ! C'est rapide ;)