Cryptage en mémoire
Sunday, January 20th, 2008[Draft article]
Il est possible de crypter les chaĂ®nes de caractères en mĂ©moire via l’utilisation de la class System.Security.SecureString
Inclure les namespaces
using System.Runtime.InteropServices;
using System.Security.SecureString;
CrĂ©er une sĂ©cure string Ă partir d’une chaine :
SecureString scstr = new SecureString();
foreach(Char c in txt_pass.Text) scstr.AppendChar(c);
Récupérer le contenu de la chaine sécurisée dans une zone mémoire non managée (cela permettra de pouvoir supprimer la valeur aussitôt après utilisation)
IntPtr ptr = Marshal.SecureStringToGlobalAllocUnicode(pass);
string clearpass = Marshal.PtrToStringUni(ptr);
Destruction de l’espace mĂ©moire stockant la chaĂ®ne en claire :
Marshal.ZeroFreeGlobalAllocUnicode(ptr);


