2010-10-15 14 views
-4

Comment sécuriser un disque dur par programmation via C#?Crypter votre disque dur en C#

Comme si un utilisateur voulait ouvrir un disque dur et qu'il devait d'abord donner un mot de passe pour y accéder. Si le mot de passe est erroné alors le disque dur est caché cet utilisateur ..

+2

Nous n'écrirons pas votre programme pour vous. – SLaks

+4

Si vous demandez comme ceci, vous n'êtes probablement pas qualifié pour manipuler des données sensibles. Bon crypto est dur. – SLaks

+1

Ce n'est pas quelque chose qui est facile à faire; il peut même être impossible de le faire en C# pur. Je suggère que vos utilisateurs téléchargent TrueCrypt ou jetez un oeil à EFS à la place. http://www.truecrypt.org/ http://en.wikipedia.org/wiki/Encrypting_File_System – LukeH

Répondre

2

Si vous essayez de le faire dans une application écrite en C#:

Obtenir les disques logiques:

string[] drives = Directory.GetLogicalDrives(); 

Jetez également ceci: http://www.experts-exchange.com/Programming/Languages/C_Sharp/Q_23825199.html

http://bytes.com/topic/c-sharp/answers/276247-get-drive-letter-win32_diskdrive

Vous aurez besoin de développer cette plus. Associez une lettre de lecteur avec un mot de passe et conservez-la dans un endroit quelconque. Si le mot de passe entré est correct, montrez-le comme vous en avez déjà une liste/tableau. (Notez qu'il est trop tôt pour que j'écrive tout cela et j'ai un rhume - mais c'est assez simple).

Vous avez votre liste de lecteurs, vous vérifiez un mot de passe pour voir s'ils peuvent voir un lecteur, si ainsi laissez-le voir.


Si vous essayez de limiter l'ensemble du système Windows de montrer des lettres de lecteur à partir d'un mot de passe, je dirais que ne pas utiliser C#. C'est un problème de sécurité Windows.

Je recommande de lire abot MS Group Policies. Cet article peut vous aider: http://support.microsoft.com/kb/231289

1

Je ne pense pas que cela puisse être fait de manière transparente (vous pouvez accéder au fichier avec n'importe quel programme) et de manière sécurisée (c'est-à-dire que le disque est crypté, pas seulement caché)) en C# (sous Windows, pas sur Singularity). Pour déchiffrer le disque à la volée, vous avez besoin d'un pilote en mode noyau. Et vous ne pouvez pas écrire cela dans .NET. Sur Linux, vous pouvez écrire un pilote FUSE (usermode) en C# + Mono.

Questions connexes