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