Quelle est la différence entre l'utilisation de Rfc2898DeriveBytes et l'utilisation de Encoding.ASCII.GetBytes(string object);
?Pourquoi ai-je besoin d'utiliser la classe Rfc2898DeriveBytes (dans .NET) au lieu d'utiliser directement le mot de passe comme clé ou IV?
J'ai eu un succès relatif avec l'une ou l'autre approche, la première est une approche plus longue où, comme la dernière est simple et pertinente. Les deux semblent vous permettre de faire la même chose par la suite, mais je me bats pour voir le point en utilisant le premier sur le second.
Le concept de base que j'ai pu comprendre est que vous pouvez convertir les mots de passe string en tableaux d'octets à utiliser par exemple pour une classe de chiffrement symétrique, AesManaged
. Via la classe RFC mais vous pouvez utiliser des valeurs salt et un mot de passe lors de la création de votre objet rfc. Je suppose que c'est plus sûr mais c'est encore une supposition sans instruction au mieux! Aussi, cela vous permet de retourner des tableaux d'octets d'une certaine taille, et bien quelque chose comme ça.
Voici quelques exemples pour vous montrer où je viens:
byte[] myPassinBytes = Encoding.ASCII.GetBytes("some password");
ou
string password = "[email protected]%5w0r]>";
byte[] saltArray = Encoding.ASCII.GetBytes("this is my salt");
Rfc2898DeriveBytes rfcKey = new Rfc2898DeriveBytes(password, saltArray);
L'objet « rfcKey » peut maintenant être utilisé pour la mise en place du .key ou Propriétés .IV sur une classe d'algorithme de chiffrement symétrique.
ie.
RijndaelManaged rj = new RijndaelManaged();
rj.Key = rfcKey.Getbytes(rj.KeySize/8);
rj.IV = rfcKey.Getbytes(rj.Blocksize/8);
'rj' devrait être prêt! La partie confuse ... donc plutôt que d'utiliser l'objet 'rfcKey', ne puis-je pas simplement utiliser mon tableau 'myPassInBytes' pour aider à configurer mon objet 'rj'? 'myPassInBytes'
J'ai essayé de le faire dans VS2008 et la réponse immédiate est NON. Mais avez-vous eu une réponse plus éclairée sur la raison pour laquelle la classe RFC est utilisée par rapport à l'autre alternative que j'ai mentionnée ci-dessus?
Cette question concerne la révision et la préparation à l'examen! – IbrarMumtaz