Zee*_*mee 2 .net c# securestring
这样做有什么好处
char[] sec = { 'a', 'b', 'c'};
SecureString s = new SecureString();
foreach (char c in sec) {
s.AppendChar(c);
}
IntPtr pointerName = System.Runtime.InteropServices.Marshal.SecureStringToBSTR(s);
String secret = System.Runtime.InteropServices.Marshal.PtrToStringBSTR(pointerName);
Run Code Online (Sandbox Code Playgroud)
比这个
String secret = "abc";
Run Code Online (Sandbox Code Playgroud)
或这个
char[] sec = { 'a', 'b', 'c'};
String secret = new Secret(sec);
Run Code Online (Sandbox Code Playgroud)
如果我想保护"abc"免受在反编译的MSIL代码中检测到的影响?
SecureString将在内存中保护你的字符串一次,编译到你的MSIL中的字符串仍然在那里.如果您需要隐藏敏感信息,请参阅此处所述的加密app.config:http://weblogs.asp.net/jgalloway/archive/2008/04/13/encrypting-passwords-in-a-net-app -config-file.aspx
HTH Dominik