Cryptage en cesar comprennant tous les symboles ascii

Description

Bon bah voila, mon premier post, surement pas le dernier.
Ce programme crypte et decrypte une chaine de caractère grace a l'algorithme "cesar" qui consiste je le rappelle a crypter grace a une clé numérique, un court exemple valant mieux qu'une longue explication :
a avec la clé 1 donne b
a avec la clé 2 donne c etc ...

Source / Exemple :


/////////////////////
// PARTIE CRYPTAGE //
/////////////////////
function cesar_cryptage(chaine_decryptee:string; decallage:integer ): string;
var
taille_chaine : integer;
tableau_new_chr : array of char;
i:integer;
x_ascii,y_ascii:byte;
x:char;
chaine_tempo:string;

begin

taille_chaine := length(chaine_decryptee);
SetLength(tableau_new_chr, taille_chaine+1);

for i:=1 to taille_chaine+1 do
    begin

    x:=chaine_decryptee[i];
    x_ascii :=ord(x);
    y_ascii :=(x_ascii+decallage )mod 255; //la valeur ascii de la lettre considérée est
                                                     //ajoutée a la valeur de la clé puis congrue

    tableau_new_chr[i]:= chr(y_ascii);              //maj du tableau des caracteres.
end;

    for i:= 1 to  taille_chaine do                  //ajout de tous les char du tableau dans
    begin                                           //chaine tempo qui sera le result lorsqu'il aura été complété.
    chaine_tempo := chaine_tempo + tableau_new_chr[i];
    end;
result := chaine_tempo;

end;

///////////////////////
// PARTIE DECRYPTAGE //
///////////////////////
function cesar_decryptage(chaine_cryptee:string; decallage:integer ): string;
var
taille_chaine : integer;                        
tableau_new_chr : array of char;
i:integer;
x_ascii,y_ascii:byte;
x:char;
chaine_tempo:string;
begin
taille_chaine := length(chaine_cryptee);
SetLength(tableau_new_chr, taille_chaine+1);

for i:=1 to taille_chaine+1 do
    begin

    x:=chaine_cryptee[i];
    x_ascii :=ord(x);
    y_ascii :=(x_ascii-decallage)mod 255;  // difference ici "-"

    tableau_new_chr[i]:= chr(y_ascii);
end;

    for i:= 1 to  taille_chaine do
    begin
    chaine_tempo := chaine_tempo + tableau_new_chr[i];
    end;
result := chaine_tempo;

end;

Conclusion :


pour tout renseignement ou pour me signaler bug ou autre : akni_kiteklat@hotmail.com
je n'ai pas "proteger" les entrées : d'ou les erreur si vous entrer des choses innoportunes (lettre dans l'edit clé etc)
Etant mon premier "vrai" programme, il est surement encombré de choses inutiles ou mal faites. :) n'hesitez pas a me corriger .
Voila juste la fonction peut etre utilisée. Thx pour les conseils
nb : la fonction décryptage n'est pas tres utiles :p du fait qu'elle ne fait qu'inverser la clé : exemple : avec le mot efg :
cesar_cryptage( def,1) = efg
cesar_decryptage(efg,1) = def
(il suffirai de prendre la fonction cesar_cryptage(efg,-1)) voila.

Codes Sources

A voir également

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.