正常的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

最新文章

  1. chrome中获取元素的样式
  2. AngularJs ng-repeat限制循环次数
  3. HTML常用标签总结
  4. 说说设计模式~大话目录(Design Pattern)
  5. 【详解】ERP、APS与MES系统是什么?
  6. 异常:Message 850 not found; No message file for product=network, facility=NL解决方案
  7. Jade之条件语句
  8. 配置caffe的python环境时make pycaffe提示fatal error: numpy/arrayobject.h No such file or directory解决方法
  9. HeadFirst设计模式之代理模式
  10. java面试题集3
  11. MySQL的 explain 解析
  12. (转)css内边距与外边距的区别,精辟啊
  13. history.back(-1) 和history.go(-1) 有什么区别?
  14. django----文件配置
  15. Java知多少(30)多态和动态绑定
  16. oracle 大量连接导致数据库不能登录
  17. SDN 第一次上机作业
  18. Verilog中使用'include实现参数化设计
  19. 33 Introducing the Go Race Detector
  20. Android -- SlidingMenu

热门文章

  1. 解决Windows服务修改配置文件后必须重启的问题
  2. SQL Server 基础 之 CASE 子句
  3. MVC架构、WebForm与MVC对比
  4. Zabbix的SNMPTrap监控配置
  5. Dell服务器Raid卡电池策略调整
  6. http://blog.csdn.net/huang_xw/article/details/7090173
  7. maven的安装和eclipse的配置以及构建mahout基本项目
  8. es6 中的 模板字符串
  9. 转:http2的资料与使用
  10. Unity Dynamic Batching