begin process at 2013 05 25 15:29:12
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Turbo Pascal

 > CRYPTO - CARRÉ DE VIGENERE

CRYPTO - CARRÉ DE VIGENERE


 Information sur la source

Note :
Aucune note
Catégorie :Turbo Pascal Niveau :Initié Date de création :13/05/2002 Date de mise à jour :14/05/2002 19:30:14 Vu / téléchargé :11 673 / 8 892

Auteur : Leirn

Ecrire un message privé
Commentaire sur cette source (3)
Ajouter un commentaire et/ou une note

 Description

Ce code permet de crypter et décrypter un texte suivant la methode dite du carré de Vigenere.
Il a ete ecrit en Turbo Pascal.
Il respecte la casse et conserve la ponctuation.

Si vous avez des questions n'hésitez pas...      

Source

  • {la fonction crypt est une fonction utilisée par la fonction vigenere, qui est la fonction à appeler pour coder votre texte.}
  • {la fonction vigenere crypte ET decrypte, pas besoin d'une seconde fonctino}
  • {la fonction vigenere requiert trois paramètres: deux paramètres string, le texte et la clé de cryptage, ainsi qu'une variable booleenne encode, qui doit etre fausse pour decoder et vrai pour encoder le texte}
  • FUNCTION crypt(text, key:string; cryp: boolean): string;
  • VAR casse,i : integer;
  • cText,cKey: char;
  • LABEL fin_func;
  • BEGIN
  • {passage de variables string a des variables char}
  • cText:=text[1];
  • cKey:=key[1];
  • {on verifie ke cText soit bien une lettre et non un espace ou un caractere de ponctuation}
  • IF (Pos(UpCase(cText), 'AZERTYUIOPQSDFGHJKLMWXCVBN') = 0) THEN
  • BEGIN
  • crypt:=text;
  • GOTO fin_func;
  • END;
  • {sauvegarde de parametre pour la conservation de la casse}
  • IF (ord(cText) > 95) THEN casse:=96 ELSE casse:=64;
  • IF (cryp = FALSE) THEN
  • {décryptage}
  • BEGIN
  • i:=(((ord(UpCase(cText)) - ord(UpCase(cKey))) + 26) mod 26) + 1;
  • END
  • ELSE
  • {cryptage}
  • BEGIN
  • i:=(((ord(UpCase(cText)) + ord(UpCase(cKey)))-130) mod 26) + 1;
  • END;
  • crypt:=chr(i + casse);
  • fin_func:
  • END;
  • FUNCTION vigenere(text, key: string; encode: boolean): string;
  • VAR sTemp : string ;
  • i : integer;
  • BEGIN
  • {decomposition du texte en charactères et gestino de la repetition de la clé afin de passer les valeurs a crypt}
  • vigenere:='';
  • FOR i:= 0 TO (Length(text) - 1) DO
  • BEGIN
  • sTemp:=crypt(text[i + 1],key[1 + (i mod Length(key))], encode);
  • vigenere:=concat(vigenere, sTemp)
  • END;
  • end;
{la fonction crypt est une fonction utilisée par la fonction vigenere, qui est la fonction à appeler pour coder votre texte.}

{la fonction vigenere crypte ET decrypte, pas besoin d'une seconde fonctino}

{la fonction vigenere requiert trois paramètres: deux paramètres string, le texte et la clé de cryptage, ainsi qu'une variable booleenne encode, qui doit etre fausse pour decoder et vrai pour encoder le texte}

FUNCTION crypt(text, key:string; cryp: boolean): string;

VAR casse,i   : integer;
    cText,cKey: char;

LABEL fin_func;

BEGIN

   {passage de variables string a des variables char}
   cText:=text[1];
   cKey:=key[1];

   {on verifie ke cText soit bien une lettre et non un espace ou un caractere de ponctuation}
   IF (Pos(UpCase(cText), 'AZERTYUIOPQSDFGHJKLMWXCVBN') = 0) THEN
      BEGIN
         crypt:=text;
         GOTO fin_func;
      END;

   {sauvegarde de parametre pour la conservation de la casse}
   IF (ord(cText) > 95) THEN casse:=96 ELSE casse:=64;

   IF (cryp = FALSE) THEN
      {décryptage}
      BEGIN
         i:=(((ord(UpCase(cText)) - ord(UpCase(cKey))) + 26) mod 26) + 1;

      END
   ELSE
      {cryptage}
      BEGIN
         i:=(((ord(UpCase(cText)) + ord(UpCase(cKey)))-130) mod 26) + 1;
      END;
   crypt:=chr(i + casse);
   fin_func:
END;

FUNCTION vigenere(text, key: string; encode: boolean): string;

VAR sTemp : string ;
    i  : integer;

BEGIN
   {decomposition du texte en charactères et gestino de la repetition de la clé afin de passer les valeurs a crypt}
   vigenere:='';
   FOR i:= 0 TO (Length(text) - 1) DO
      BEGIN
         sTemp:=crypt(text[i + 1],key[1 + (i mod Length(key))], encode);
         vigenere:=concat(vigenere, sTemp)

      END;
   
end;

 Conclusion

J'ai decidé de modifier ce code, à l'origine présentant un programme complet, afin de n'y mettre que les fonctions nécessaires au cryptage, ce n'est donc plus qu'un module ajoutable à un code deja existant permettant de crypter/décrypter un texte. Mais je pense que c'est plutot la vocation de ce genre de source.

Turbo Pascal 7.01 FR est dispo gratuitement sur le site de borland.      

Ce code est réputé non buggé, mais si desfois quelque chose m'avais échappé, n'hésitez pas.

 Fichier Zip

Les Membres Club peuvent télécharger directement un fichier contenu dans le zip sans télécharger le zip en entier !

Télécharger le zip


 Sources de la même categorie

Source avec Zip CONVERTIR NOMBRE EN CARACTERES par 520550
Source avec Zip JEU DE CULTURE par sliven
CONVERSION D'UN NOMBRE COMPRIS 0 ET 999999999999999999 (18 C... par Hror
JEU DE BOULE par abdellahsaida
Source avec Zip ALGORITHME DU JEU TETRIS par darrylsite

Commentaires et avis

Commentaire de g0belin le 13/05/2002 21:45:02

Y a presque que le meme code qui a ete publier sur HZV n°10 bizzard !!!
mais bon je l'ai fait aussi et sa marche tres bien....

Commentaire de Leirn le 14/05/2002 00:46:48

HZV je c meme pas ce ke ca donne en developpé...
J'ai tout fait a la main, et j'avais jamais vu de pascal avant ce matin, ni en exemple, ni en mag, rien... Je l'ai fait unikement pour aider une amie, et je me suis dis kil serait bien ici, puisk'il y avait rien dessus...

Dc lé fé moi meme :p

Commentaire de DelphiCool le 14/05/2002 08:09:46 administrateur CS

Si sur le zine c'est le mem algo et qu'il est en pascal, c'est un peu normal que ce soit "presque que le meme code "

 Ajouter un commentaire




Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Mai 2013
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
2728293031  

Consulter la suite du CalendriCode

Photothèque

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,936 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales