begin process at 2012 02 08 10:48:50
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Fichier / Disque

 > CRÉATION D'UN CHECKSUM DE BASE

CRÉATION D'UN CHECKSUM DE BASE


 Information sur la source

 Description

Ce code permet de réaliser un checksum de base a partir du code ASCI des caracteres. Il a l'avantage d'etre rapide et leger. Pour l'exemple j'ai utilisés un type string, un tableau de string permet evidement d'avoir de meilleurs resultats. On peut tout a fait en faire une fonction. Je l'ai mis dans la catégorie fichier parce que je l'utilise pour vérifier que des fichiers n'aient pas été modifiés ...

Source

  • program asci_crypto;
  • {$APPTYPE CONSOLE}
  • uses
  • SysUtils;
  • var
  • tocrypt, crypted, crypted_short, checksum : string;
  • i : integer;
  • begin
  • { TODO -oUser -cConsole Main : placez le code ici }
  • WriteLn('Programme de cryptographie... Dr_T');
  • Readln(tocrypt);
  • if not ((Length(tocrypt) mod 2))=0 then tocrypt:=tocrypt+' ';
  • for i:=1 to Length(tocrypt) do
  • begin
  • if not (i mod 2 = 0) then crypted:=crypted+(IntToStr( (ord(tocrypt[i])+ord(tocrypt[i+1]))));
  • if (i mod 3 = 0) then crypted_short:=crypted_short+(IntToStr( (ord(tocrypt[i])+ord(tocrypt[i+1]))));
  • Write('caractere a encoder:');
  • WriteLn(IntToStr(ord(tocrypt[i])));
  • Write('->');
  • Writeln(IntToStr(ord(tocrypt[i])+ord(tocrypt[i+1])));
  • end;
  • for i:=1 to Length(tocrypt) do
  • begin
  • if (ord(tocrypt[i]) mod 7 = 0) then checksum:=checksum+crypted[i];
  • end;
  • WriteLn('La chaine cryptee est:');
  • Writeln(crypted);
  • WriteLn;
  • WriteLn('La chaine cryptee courte associee est:');
  • WriteLn(crypted_short);
  • WriteLn;
  • WriteLn;
  • WriteLn('Attention, le checksum n''est revelateur que pour de grandes chaines!');
  • WriteLn('Checksum:');
  • WriteLn(checksum);
  • readln(tocrypt);
  • end.
program asci_crypto;

{$APPTYPE CONSOLE}

uses
  SysUtils;

var
tocrypt, crypted, crypted_short, checksum : string;
i : integer;

begin
  { TODO -oUser -cConsole Main : placez le code ici }

WriteLn('Programme de cryptographie... Dr_T');
Readln(tocrypt);

if not ((Length(tocrypt) mod 2))=0 then tocrypt:=tocrypt+' ';

for i:=1 to Length(tocrypt) do
    begin
    if not (i mod 2 = 0) then crypted:=crypted+(IntToStr( (ord(tocrypt[i])+ord(tocrypt[i+1]))));
    if (i mod 3 = 0) then crypted_short:=crypted_short+(IntToStr( (ord(tocrypt[i])+ord(tocrypt[i+1]))));
    Write('caractere a encoder:');
    WriteLn(IntToStr(ord(tocrypt[i])));
    Write('->');
    Writeln(IntToStr(ord(tocrypt[i])+ord(tocrypt[i+1])));
    end;

for i:=1 to Length(tocrypt) do
    begin
    if (ord(tocrypt[i]) mod 7 = 0) then checksum:=checksum+crypted[i];
    end;

WriteLn('La chaine cryptee est:');
Writeln(crypted);
WriteLn;
WriteLn('La chaine cryptee courte associee est:');
WriteLn(crypted_short);
WriteLn;
WriteLn;
WriteLn('Attention, le checksum n''est revelateur que pour de grandes chaines!');
WriteLn('Checksum:');
WriteLn(checksum);
readln(tocrypt);

end.



 Sources du même auteur

Source avec Zip MODIFIER LE BG DE LA LISTE DE CONTACT DE MSN MESSENGER (BETA...
CONVERTISSEUR DE FICHIER TYPE "TREE >> NOMFICHIER.TXT"
Source avec Zip ENVOI DE MAIL EN MASQUANT SON ADRESSE
Source avec Zip Source avec une capture CONVERSION D'ADN
CALCUL DE FACTORIELLE

 Sources de la même categorie

Source avec Zip Source avec une capture RECHERCHE PAR EXTENSION AVEC JVCL par Weirdy
Source avec Zip Source avec une capture FICHIER DUPLIQUÉ AVEC UNE TABLE DE HACHAGE par jerome1875
Source avec Zip Source avec une capture WII SD CARD NAVIGATOR 1.0.0.5 ALPHA par skyangel21
Source avec Zip Source avec une capture SIZECONVERTER : UNE MINI LIBRAIRIE DE CONVERSION DE TAILLE par LaDentDeLait
Source avec Zip Source avec une capture ENREGISTREMENT DES DONNÉES DANS L'EXE par yanb

Commentaires et avis

Commentaire de lahire3k le 24/04/2005 20:44:55

léger???

Commentaire de Dreuteu le 24/04/2005 22:05:21

Oui mais?
En quoi ce commentaire apporte t-il quelque chose?

Tout n'a pas forcément a être COMPLIQUE pour être UTILISABLE (et c'est même le plus souvent l'inverse).

Personellement ce code me suffit...

Et c'est pour ca que je l'ai publié, sans disserter sur l'usage que j'en fais au 'presque' quotidien, qui ne se limite pas aux fichiers...

Commentaire de nounou27it le 25/04/2005 14:01:22

vous devait maitre un peut plus d'explication sur le source et merci je tien a dire que le site code source est un guide quon ne peut s'en passer
merci

Commentaire de Dreuteu le 25/04/2005 15:30:09

Exact...
Je suis un peu honteux j'ai pas commenté... alors j'explique...

Ord(const : char) renvoie le code ASCI du caractere char.

A mod B donne le reste de la division de A par B, donc si A mod 2 = 0, A est pair...

On va donc avoir la somme du code asci de la 'lettre' (char) au rang N et au rang N+1

Meme chose avec A mod 7 = 0, A est multiple de 7

...

Commentaire de MAURICIO le 29/04/2005 17:54:42 administrateur CS

Moi je veux bien mais pourquoi avoir donné le titre:
CRÉATION D'UN CHECKSUM DE BASE
alors que ça aurait été plus simple de dire:
CRYPTAGE DE STRINGS.
Tu veux dire quoi par CheckSum ???

 Ajouter un commentaire




Nos sponsors


Sondage...

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

Photothèque

 
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 : 4,914 sec (3)

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