Cryptage en mémoire
[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);


