(C#)System.Security.SecureString(表示应保密的文本)

正常的String类型值,在脱离开作用域之后,其值在内存中并不会被立即销毁,这时如果有人恶意扫描你的内存,程序中所保存的机密信息就会暴露;于是就有了System.Security.SecureString,SecureString表示一个应保密的文本,它在初始化时就已被加密,并且脱离作用域后会被立即销毁;

附一个小Demo:

class Program{
  static void Main(){
         System.Security.SecureString secureStr = new System.Security.SecureString();
            secureStr.AppendChar('A');
            string re = secureStr.ToString();//SecureString 中的值会被加密保存,不能直接获取,此时re=System.Security.SecureString
            IntPtr inP = Marshal.SecureStringToBSTR(secureStr);//inP为secureStr的句柄
            string ss = Marshal.PtrToStringBSTR(inP);//ss="A"

            Marshal.ZeroFreeBSTR(inP);//释放BSTR指针
            string ss2 = Marshal.PtrToStringBSTR(inP);//ss2=""   
    }  
}
SecureString用法Demo
原文地址:https://www.cnblogs.com/Andrew-XinFei/p/5287948.html