Lea en mode chiffrement (sea)

Description

Bonjour, voici un exemple de ce que peut donner un algorithme de hachage en mode chiffrement (ce n'est pas exactement la définition mais qu'importe, SEA dépend de LEA). Les fonctions sont réunies dans SEA.pas :
ObtainKey : permet d'obtenir une clef de cryptage/décryptage (calculée à partir du hash de la chaîne passée en paramètre). Il est recommandé d'utiliser cette fonction plutôt que de définir sa propre clef ... à moins que vous ne vouliez utiliser du SHA ou du MD5, ou quoi que ce soit pour obtenir votre clef :p).
EncryptFile : permet de crypter ou de décrypter un fichier rapidement. Possibilité d'utiliser un callback).
Encrypt : la fonction principale, crypte/décrypte un buffer de taille donnée, avec un mode (cryptage/décryptage), une clef de cryptage/décryptage et un callback optionel.

Pour les exemples d'encryptage, allez voir l'exemple (prenez un fichier texte, puis cryptez le, et réouvrez-le), car le site ne supporte pas l'unicode et donc des problèmes de caractères :/

Dernier conseil de sécurité : essayez un maximum de varier vos clefs : utiliser la même clef pour chaque message ce n'est pas top ...

Un exemple qui permet de crypter/décrypter les fichiers est fourni en démonstration, cependant pensez à faire des copies "au cas où", on ne sait jamais.
J'ai également inclus un fichier "Exemple.txt", crypté. Si vous êtes arrivés jusqu'à ce point de la description de la source, vous saurez le lire, car je vous indique que la clef est "Bacterius" ;)

Un autre exemple concernant les images permet de constater la qualité du cryptage (bon on voit rien, ça veut rien dire, je réfléchis à un meilleur exemple ...) !

Pour la description de l'algorithme, voir les commentaires (trouvez le bon ...)

Source / Exemple :


// In the zip

Conclusion :


Voilà, tous commentaires, conseils, remarques, critiques, etc ...

Codé et testé sous Delphi 6 & 7 Personal Edition.

Cordialement, Bacterius !

Codes Sources

A voir également

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.