/**/ /*--===------------------------------------------===---终于,Snippet Compiler开始支持UNICODE字符编码了。我亲爱的同学们,可以从下面的地址下载:http://www.sliver.com/dotnet/SnippetCompiler/这次我们演示这样一个demo:csc /unsafe register.cs编写提示用户输入密码的控制台程序,要求考虑安全性。--===------------------------------------------===---*/ namespace xumh { public class Register { public static void Main() { using(System.Security.SecureString ss = new System.Security.SecureString()) { System.Console.Write("请输入密码:"); while(true) { System.ConsoleKeyInfo cki = System.Console.ReadKey(true); if(cki.Key == System.ConsoleKey.Enter) break; ss.AppendChar(cki.KeyChar); System.Console.Write("*"); } System.Console.WriteLine(); //显示输入的密码 DisplaySecureString(ss); }//using后的SecureString会被销毁 } //显示密码的方法 private unsafe static void DisplaySecureString(System.Security.SecureString ss) { char* p = null; try { //将 SecureString 揭秘到一个非托管内存缓冲区 p = (char*) System.Runtime.InteropServices.Marshal.SecureStringToCoTaskMemUnicode(ss); for(int i=0; p[i] !=0; i++) System.Console.Write(p[i]); } finally { if(p != null)//确保清楚并释放已解密SecureString字符的非托管内存缓冲区 System.Runtime.InteropServices.Marshal.ZeroFreeCoTaskMemUnicode((System.IntPtr) p); } } }} 转载于:https://www.cnblogs.com/flaaash/archive/2008/05/14/1197324.html