(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

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM