C# 如何加密Textbox里的内容?
我把Textbox设置成密码框,但是用密码探测软件就可以读取到,请问如何加密让密码探测软件探测不到。

解决方案 »

  1.   

    --加密方法 
    public static string EncryptString(string content, string password)
            {
                byte[] bcontent = (new UnicodeEncoding()).GetBytes(content);
                byte[] bpassword = (new UnicodeEncoding()).GetBytes(password);            for (int i = 0; i < bcontent.Length; i += 2)
                {
                    for (int j = 0; j < bpassword.Length; j += 2)
                    {
                        bcontent[i] = Convert.ToByte(bcontent[i]^bpassword[j]);
                    }
                }
                return (new UnicodeEncoding()).GetString(bcontent).TrimEnd('\0');
            }
    -----------------------------------------------------
     public static string MD5Encrypt(string content)
            {
                if (string.IsNullOrEmpty(content) == false)
                {
                    MD5 md5 = MD5.Create();
                    string result = "";
                    byte[] data = md5.ComputeHash(Encoding.Default.GetBytes(content));
                    for (int i = 0; i < data.Length; i++)
                    {
                        result += data[i].ToString("x2");
                    }
                    return result;
                }
                else
                {
                    Console.WriteLine("您加密的内容为空!");
                    return "";
                }
            
            }
      

  2.   

      事实上用系统自带的*号来做加密是很脆弱的,你应该在输入时就拦截键盘,然后把输入的加密后的内容显示到textBox,同时变成*号
      

  3.   

    在 TextBox.KeyPress 事件中处理:private string pwdText = "";  // 实际的密码文本private void textBox1_KeyDown(object sender, System.Windows.Forms.KeyEventArgs e)
    {
      pwdText += 输入的字符;
      (sender as TextBox).Text += '*';
    }
      

  4.   

    用vs自带md5进行加密,就像很多网站,你输入完了密码,发现密码变长了,就是这么来的
      

  5.   

            private StringBuilder InputText = new StringBuilder();
            private void textBox1_KeyPress(object sender, KeyPressEventArgs e)
            {
                InputText.Append(Convert.ToString(e.KeyChar));
                e.KeyChar = '*';
                
            }
    经过测试,比较简单~
      

  6.   

    直接设置TextBox的属性PasswordChar为*
      

  7.   

    private StringBuilder InputText = new StringBuilder();
            private void textBox1_KeyPress(object sender, KeyPressEventArgs e)
            {
                InputText.Append(Convert.ToString(e.KeyChar));
                e.KeyChar = '*';
               
            } 
    这个方法确实有效,但是我的密码不能获取了啊,我是做的用户登陆的界面,怎么获取我本身输入的密码呢?
    谢谢!!
      

  8.   

    C#有专门的加密解密类,直接用就是啦,甚至可以直接复制msdn中的现成代码,稍加修改即可。具体查msdn,养成习惯用msdn就方便多了
      

  9.   

    谢谢楼上的忠告,本人是初学者,MSDN上的加密看了的,但是看不懂,希望给出具体代码。谢谢!!