Simples somme de données 8, 16, 32, 64 bits

Soyez le premier à donner votre avis sur cette source.

Vue 5 607 fois - Téléchargée 737 fois

Description

Exemple de simple somme 8,16,32,64 bits sur des données.


FileTest.txt.bin [1234567890-ABCD-abcd-(^_^)]
0x94
0x2E69
0x9E9D666F
0xC4D9A1A4D9C3C4CB

attention :

sur le fonctions de sommes sur Stream, ne sont pas adaptées en performances pour des fichiers supérieur a 65MB.

Codes Sources

A voir également

Ajouter un commentaire

Commentaires

Bacterius
Messages postés
3869
Date d'inscription
samedi 22 décembre 2007
Statut
Membre
Dernière intervention
3 juin 2016
5 -
Bien sûr mais c'est toujours mieux optimisé :)

L'exemple de l'avion, c'est le principe même du checksum.
Pour la détection des virus, rien ne vaut un bon anti-virus. Cependant, si l'on a par exemple 1 fichier ultra-important sur notre machine, on peut garder son checksum quelque part (post-it près de l'ordinateur), puis vérifier de temps à autres. Si le checksum est différent, le fichier est infecté.
Mais ça reste très artisanal, et les anti-virus ont des technologies bien plus avancées et efficaces.
@Manchester : tu as l'air de t'intéresser au domaine de la sécurité, si j'en crois tes sources :)

Cordialement, Bacterius !
cs_ManChesTer
Messages postés
378
Date d'inscription
vendredi 20 octobre 2000
Statut
Modérateur
Dernière intervention
11 décembre 2013
-
Bonjour,

Bacterius, biensur la formule que j'ai decrit plu haut je ne l'ai pas ecrit en delphi ni meme otimisée... J'en donnais simplement le "wayof" que j'utilise notament pour de la verification de données envoyée par radio ou les pertubations du signal sonts inévitables.

En assembleur ce code ne prend que quelques lignes et est
tres rapide. Dans certains cas, c'est tres utile.

Imagine que tu dois mesurer quelque chose qui est transmis par un avion, l'avion envoie par exemple 15x les memes paquets de données. Pour savoir si elles sonts intactes a l'arrivée on fais le checksum du 1er paquet recu, comme le paquet contiend un checksum, on le compare a celui qu'on a calculé. Si c'est les memes, on valide le paquet, sinon on passe au suivant,si tous les 15 paquets ne sont pas bons, on demande a l'emeteur un "resend" du paquet (si il est joignable...).

Voila un exemple ou le cheksum est indispensable.

pour ce qui est d'utiliser un checksum pour verifier la presence de virus ou la modification de données dans des fichiers de grosses taille ou tailles variables, le checksum n'est pas une solution, par contre pour des paquets dedonnées de taille conue et invariable, c'est rapide et efficace.

Bon Coding...

ManChesTer.
Bacterius
Messages postés
3869
Date d'inscription
samedi 22 décembre 2007
Statut
Membre
Dernière intervention
3 juin 2016
5 -
Si tu veux quelque chose de moins limité, penses aux fonctions de hashage cryptographiques (MD5, SHA, Whirlpool, ...). Là, les "constantes de bourrage" sont impraticables ... sauf en MD5, ce dernier commence à se faire vieux ... Mais avec le SHA ou le Whirlpool tu es peinard pour quelques années :p

Cordialement, Bacterius !
kelloucheaeh
Messages postés
16
Date d'inscription
lundi 26 mai 2008
Statut
Membre
Dernière intervention
15 février 2010
-
Trop limité à ce que je vois, merci encore pour ces minutes si précieuses.
Bacterius
Messages postés
3869
Date d'inscription
samedi 22 décembre 2007
Statut
Membre
Dernière intervention
3 juin 2016
5 -
Eventuellement. Si tu veux l'utiliser comme détecteur de virus, il te faut plusieurs informations.

- La modification du fichier à tester signifie NECESSAIREMENT une infection de virus;
- Tu connais le checksum du fichier AVANT infection;

Dans ce cas, il te suffit de refaire le checksum du fichier quand tu veux vérifier son état. Si le checksum AVANT infection et celui que tu viens de faire sont identiques, alors ton fichier est OK. Sinon, il est infecté ...
Evidemment, il existe des virus qui ajoutent des "constantes de bourrage" dans leur code, afin de faire en sorte que le checksum du fichier infecté soit identique à celui du fichier normal (dans ce cas, tu ajoutes un octet à la fin du fichier avant infection, par exemple !).

Cordialement, Bacterius !

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.