cs_Aaron
Messages postés116Date d'inscriptionlundi 29 juillet 2002StatutMembreDernière intervention19 janvier 2009 31 déc. 2004 à 17:55
J'ai essaye comme ça :
Var
S: String;
I, N, X: Integer;
Begin
// Si aucune clé n'est entrée.
If Key.Text='' Then Exit;
// Mettre A.Text en minuscules...
A.Text:=LowerCase(A.Text);
// Effacer B.Text
B.Text:='';
// Enlever les espace autour de A.Text.
A.Text:=Trim(A.Text);
// Caractères possibles.
S:='abcdefghijklmnopqrstuvwxyz';
// Convertir la clé en Int.
N:=StrToInt(Key.Text);
For I:=0 To A.GetTextLen-1 Do
Begin
// Modulo au cas où N>26
N:=N Mod 26;
// Valeur du caractère i en ascii...
X:=Ord(A.Text[I+1]);
// Si X est un espace...
If X<>32 Then
Begin
// Valeur du caractère ascii-97(a=97)+la clé...
B.Text:=B.Text+S[X-97+N];
End
// Ajouter l'espace dans la chaîne...
Else B.Text:=B.Text+' ';
End;
Mais ça ne marche pas dès que la clé>25 (et moins pour les grosse chaines, je comprend pas pourquoi...) :-/
cs_MAURICIO
Messages postés2106Date d'inscriptionmardi 10 décembre 2002StatutModérateurDernière intervention15 décembre 20145 2 déc. 2004 à 11:27
Bon, comme j' ai essayé moi même de créer un mode de cryptage (elle est dans le commentaire de ma source sur le cryptage de VERNAM), je sais que la tâche n' est point facile, alors, je te félicite pour ton iniciative et, si tu as besoin d' aide pour créer une procédure dans une autre unit, jette un oeil sur mes sources, tu trouveras ce que tu cherches dans l' une d' elle ...
Kit3kl4t
Messages postés4Date d'inscriptionmercredi 22 septembre 2004StatutMembreDernière intervention 1 décembre 2004 1 déc. 2004 à 17:33
oups désolé pour le double post.
Pour te répondre mauricio, je sais que le Cesar est un cryptage vraiment peu fiable, facilement decryptable.
C'est dans le cadre d'un tpe et on commence par le plus simple ! Et puis j'avoue, je n'ai pas resisté à la tentation de poster un premier code :)
bon je vais de ce pas le modifier.Bye ! (thx moon :)
Kit3kl4t
Messages postés4Date d'inscriptionmercredi 22 septembre 2004StatutMembreDernière intervention 1 décembre 2004 1 déc. 2004 à 17:27
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és4Date d'inscriptionmercredi 22 septembre 2004StatutMembreDernière intervention 1 décembre 2004 1 déc. 2004 à 17:27
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 !:)
cs_Mo0n
Messages postés3Date d'inscriptionmercredi 29 septembre 2004StatutMembreDernière intervention 2 décembre 2004 1 déc. 2004 à 14:41
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 !
cs_MAURICIO
Messages postés2106Date d'inscriptionmardi 10 décembre 2002StatutModérateurDernière intervention15 décembre 20145 30 nov. 2004 à 12:30
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é.
Squaf
Messages postés2Date d'inscriptionmercredi 7 janvier 2004StatutMembreDernière intervention30 novembre 2004 30 nov. 2004 à 00:59
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.
31 déc. 2004 à 17:55
Var
S: String;
I, N, X: Integer;
Begin
// Si aucune clé n'est entrée.
If Key.Text='' Then Exit;
// Mettre A.Text en minuscules...
A.Text:=LowerCase(A.Text);
// Effacer B.Text
B.Text:='';
// Enlever les espace autour de A.Text.
A.Text:=Trim(A.Text);
// Caractères possibles.
S:='abcdefghijklmnopqrstuvwxyz';
// Convertir la clé en Int.
N:=StrToInt(Key.Text);
For I:=0 To A.GetTextLen-1 Do
Begin
// Modulo au cas où N>26
N:=N Mod 26;
// Valeur du caractère i en ascii...
X:=Ord(A.Text[I+1]);
// Si X est un espace...
If X<>32 Then
Begin
// Valeur du caractère ascii-97(a=97)+la clé...
B.Text:=B.Text+S[X-97+N];
End
// Ajouter l'espace dans la chaîne...
Else B.Text:=B.Text+' ';
End;
Mais ça ne marche pas dès que la clé>25 (et moins pour les grosse chaines, je comprend pas pourquoi...) :-/
2 déc. 2004 à 11:27
1 déc. 2004 à 17:33
Pour te répondre mauricio, je sais que le Cesar est un cryptage vraiment peu fiable, facilement decryptable.
C'est dans le cadre d'un tpe et on commence par le plus simple ! Et puis j'avoue, je n'ai pas resisté à la tentation de poster un premier code :)
bon je vais de ce pas le modifier.Bye ! (thx moon :)
1 déc. 2004 à 17:27
je vais de ce pas regarder comment appeler une fonction à partir d'une autre unit (et oui je débute !:)
1 déc. 2004 à 17:27
je vais de ce pas regarder comment appeler une fonction à partir d'une autre unit (et oui je débute !:)
1 déc. 2004 à 14:41
30 nov. 2004 à 12:30
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é.
30 nov. 2004 à 00:59
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.