Dans ma situation, j'ai un certain nombre de fichiers qui seront stockés sur un serveur. Chacun de ces fichiers est créé par une application C# que j'écris.comment appeler RijndaelAlg.CreateEncryptor en C# correctement lors de l'enregistrement de nombreux fichiers indépendants
fond: Pour cette application, la quantité de temps nécessaire pour chiffrer isnt importante, les fichiers ont tendance à être petit et nous avons beaucoup de cycles CPU pour épargner (le client est le seul ordinateur qui encrypte ou décrypte les données).
Chaque fichier est sans rapport et j'ai besoin du contenu à protéger contre l'espionnage par le sysadmin ou toute personne qui met la main sur le disque dur (en supposant un mauvais gars)
ma compréhension est RijndaelAlg est un algorithme solide pour ce genre d'opération? En supposant que cette information est correcte, comment utiliser correctement la fonction RijndaelAlg.CreateEncryptor?
la facilité d'utilisation que je veux est pour mon utilisateur de saisir un mot de passe, supposer que le mot de passe est un bon mot de passe.
mes questions sont
la meilleure façon de convertir une chaîne inputed utilisateur (C# « string) dans un octet []? Je suppose que je devrais hachage pour contourner le problème d'avoir des 0 sur tous les autres personnages? Quelle est la meilleure façon de faire cette conversion?
Que dois-je utiliser pour l'intraveineuse? Je crois que c'est une valeur qui devrait être renseignée (même si MSDN dit qu'il est correct de passer 'null'). qu'est-ce que j'utilise pour cette valeur? Gardez à l'esprit pour ma situation J'ai un tas de fichiers indépendants qui doivent être décryptés indépendamment. Et si la IV est bien connue, est-ce un problème? (Puis-je utiliser un hash du nom de fichier car il s'agit d'une valeur unique)
Y at-il un meilleur algorithme que RijndaelAlg pour crypter de nombreux fichiers indépendants en utilisant le même mot de passe?
N'essayez pas de coder la chaîne, utilisez PasswordDeriveBytes ou Rfc2898DeriveBytes. –
Hmm, bon point car j'ai oublié que c'est pour crypter un mot de passe. –
'PasswordDeriveBytes' est obsolète maintenant. Utilisez ['Rfc2898DeriveBytes.GetBytes'] (http://msdn.microsoft.com/en-us/library/system.security.cryptography.rfc2898derivebytes.getbytes.aspx) – Elmo