Utilitaire de cryptage de fichiers

Soyez le premier à donner votre avis sur cette source.

Vue 7 077 fois - Téléchargée 1 528 fois

Description

Cryptal est un utilitaire pour crypter et décrypter simplement toutes sortes de fichier en AES.
Il peut également s'associer l'extension .encrypt

Conclusion :


A vous de me dire ;)

Codes Sources

A voir également

Ajouter un commentaire Commentaires
Messages postés
3793
Date d'inscription
samedi 22 décembre 2007
Statut
Membre
Dernière intervention
3 juin 2016
9
*de VB excuse. Et le mode d'opération par défaut est apparemment CBC d'apres MSDN, ce qui est bon, mais il serait souhaitable de l'ajouter explicitement dans le code, au cas ou le défaut changerait.
Messages postés
3793
Date d'inscription
samedi 22 décembre 2007
Statut
Membre
Dernière intervention
3 juin 2016
9
Trois points importants:
- l'IV ne DOIT PAS etre dérivé du mot de passe, il doit etre aléatoire (et plus, dépendant du mode d'opération utilisé) - utilises le générateur pseudoaléatoire cryptographique offert par C#. Tout l'intéret d'un IV est qu'il permet de chiffrer différemment meme avec la meme clef, dans ton exemple le meme IV est toujours associé a la meme clef, ca ne sert donc a rien. Il faut générer un IV aléatoire a chaque fois et le stocker dans le fichier!!
- tu ne spécifies pas le mode d'opération utilisé pour AES - lequel est utilisé par défaut? ECB n'est pas sécure si la taille du fichier est plus grande que 16 octets.
- il faudrait ajouter un HMAC d'integrité a coté de l'IV dans le fichier pour garantir que le fichier ne soit pas modifié par un attaquant, pour obtenir ca il suffit de faire un HMAC du fichier chiffré en utilisant la clef de chiffrement comme clef (avec par exemple SHA256 ou SHA512)
Messages postés
27
Date d'inscription
jeudi 23 mars 2006
Statut
Membre
Dernière intervention
25 mars 2011

Entierement d'accord avec NHenry.

J'ai réalisé un peu pres la meme chose mais sous forme de bibliotheque facilement utilisable dans tout projet .Net,
je laissé le choix de différentes méthodes de crypto: DES, Triple DES et Rinjkaert.
De plus tu n'étais pas obligé d'enregistrer le résultat sous forme de fichier, tu pouvais faire: var secretString = CryptLib.EncryptContent("blablabla")

Par ailleurs ce serait bien de faire des tests unitaires sur ce type de projet. Par exemple si tu encrypte un fichier XML ce serait bien que le décryptage ne perde pas l'indentation et tout le tralala.
Par exemple suivant les méthodes de crypto tu es limité a un certain nombre de bits pour le mot de passse (64bits pour DES = 8 lettres).

Bonne continuation.
Messages postés
14788
Date d'inscription
vendredi 14 mars 2003
Statut
Modérateur
Dernière intervention
1 mai 2021
155
Bonsoir,

2 choses, je commence par la plus importante :

--------------------------------------
TU POURRAIS AU MOINS CITER TES SOURCES :
http://social.msdn.microsoft.com/Forums/en-US/vbgeneral/thread/1750a192-520b-4b75-b08f-48b24fd2209c/
http://stackoverflow.com/questions/9243034/how-secure-is-vb-net-rijndael-managed-encryption-or-aes
--------------------------------------

Ensuite, quitte à reprendre des codes tel quel, autant chercher à améliorer, par exemple en mettant les fonctions de cryptage dans un module pour pouvoir réutiliser facilement le code !!!

Sinon concernant le code :
Catch When Err.Number = 53

Utilises plutot le type d'erreur :
Catch Ex as Io.FileNotFoundException

Penses aussi à activer Option Strict et Option Explicit ainsi que de retirer l'import automatique de Microsoft.VisualBasic.

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.