Cryptage en cesar comprennant tous les symboles ascii

Soyez le premier à donner votre avis sur cette source.

Vue 16 919 fois - Téléchargée 845 fois

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

Ajouter un commentaire

Commentaires

Squaf
Messages postés
2
Date d'inscription
mercredi 7 janvier 2004
Statut
Membre
Dernière intervention
30 novembre 2004
-
Ton cryptage marche bien mais ton code est pas terrible a mon avis.
En effet, tes fonctions associées au bouton crypter et decrypter ne sont utilisables que dans ce contexte.
Declare les dans un autre unit, cela te permettra de les rendres plus generique et contente toi seulement de les appeller dans les procedures buttonclikc.
Cela rendra ton code exploitable par d'autre programmes que le tien. Ainsi si j'ai besoin de ton systeme de cryptage dans un autre projet, j'utilise ta nouvelle unit comprenant les fonctions qui m'interessent et je les appellent avec les bons parametres.
Cela permet aussi la disparition de tes variables globales.
cs_MAURICIO
Messages postés
2233
Date d'inscription
mardi 10 décembre 2002
Statut
Modérateur
Dernière intervention
15 décembre 2014
5 -
Je suis d' accord avec Squaf ...
De plus, ce cryptage n' est pas terrible vu qu' il suffit de créer un code qui va tester toutes les clés possibles pour dechiffrer!!!
Tu as un source qui s' appelle 'Chiffre VERNAM' qui t' apporte un cryptage 100% fiable vu qu' il crée une clé pour chaque lettre. D' ailleurs j' allais poster une version bien meilleure quand ton source m' a interpelé.
cs_Mo0n
Messages postés
3
Date d'inscription
mercredi 29 septembre 2004
Statut
Membre
Dernière intervention
2 décembre 2004
-
Bravo kit ^^ Ton premier vrai programme fonctionne a merveille :D Je pense que je vais l'utiliser pour mon TPE ! lol, Bonne continuation dans la prog et a demain ++ je suis fier de toi !
Kit3kl4t
Messages postés
4
Date d'inscription
mercredi 22 septembre 2004
Statut
Membre
Dernière intervention
1 décembre 2004
-
Merci pour les conseils et pour les critiques :)
je vais de ce pas regarder comment appeler une fonction à partir d'une autre unit (et oui je débute !:)
Kit3kl4t
Messages postés
4
Date d'inscription
mercredi 22 septembre 2004
Statut
Membre
Dernière intervention
1 décembre 2004
-
Merci pour les conseils et pour les critiques :)
je vais de ce pas regarder comment appeler une fonction à partir d'une autre unit (et oui je débute !:)

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.