(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="" } }
分类: 读书笔记
标签: C#