begin process at 2010 02 10 08:41:42
  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 SAUVEGARDE DE PLUSIEURS DISQUES/PARTITIONS par danfranjo
Source avec Zip Source avec une capture FICLOCK : LOCKEZ LES FICHIERS par JulioDelphi
Source avec Zip Source avec une capture MODIFICATION DES EXTENSIONS DE FICHIERS par JeremyLecouvert
EXPLORATION RÉCURSIVE DE RÉPERTOIRE par JeremyLecouvert
Source avec Zip OBTENIR LE PROPRIÉTAIRE D'UN FICHIER (WIN32;NTFS) par ILP

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

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...

Comparez les prix

CalendriCode

Février 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728

Consulter la suite du CalendriCode

 
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,640 sec (3)

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