C# 如何加密Textbox里的内容? C# 如何加密Textbox里的内容?我把Textbox设置成密码框,但是用密码探测软件就可以读取到,请问如何加密让密码探测软件探测不到。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 --加密方法 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 ""; } } 事实上用系统自带的*号来做加密是很脆弱的,你应该在输入时就拦截键盘,然后把输入的加密后的内容显示到textBox,同时变成*号 在 TextBox.KeyPress 事件中处理:private string pwdText = ""; // 实际的密码文本private void textBox1_KeyDown(object sender, System.Windows.Forms.KeyEventArgs e){ pwdText += 输入的字符; (sender as TextBox).Text += '*';} 用vs自带md5进行加密,就像很多网站,你输入完了密码,发现密码变长了,就是这么来的 private StringBuilder InputText = new StringBuilder(); private void textBox1_KeyPress(object sender, KeyPressEventArgs e) { InputText.Append(Convert.ToString(e.KeyChar)); e.KeyChar = '*'; }经过测试,比较简单~ 直接设置TextBox的属性PasswordChar为* private StringBuilder InputText = new StringBuilder(); private void textBox1_KeyPress(object sender, KeyPressEventArgs e) { InputText.Append(Convert.ToString(e.KeyChar)); e.KeyChar = '*'; } 这个方法确实有效,但是我的密码不能获取了啊,我是做的用户登陆的界面,怎么获取我本身输入的密码呢?谢谢!! C#有专门的加密解密类,直接用就是啦,甚至可以直接复制msdn中的现成代码,稍加修改即可。具体查msdn,养成习惯用msdn就方便多了 谢谢楼上的忠告,本人是初学者,MSDN上的加密看了的,但是看不懂,希望给出具体代码。谢谢!! c# 点击回车触发事件 C# VFW 视频捕捉 C#可枚举的接口(IEnumerable) 关于c#代码规范,还是高手本来就喜欢这样写? asp.net (c#) 图片存 access 数据库问题 treeview拖动后如何立即保存拖动后的结果呢?[100分求助] 100w左右的项目,电厂信息系统,有演示版本的来 怎么验证 如何给textbox控件发送按键消息 WINFORM怎么做个简单的中国地图 递归的运算逻辑 请问谁有c#封装activex的方法
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 "";
}
}
{
pwdText += 输入的字符;
(sender as TextBox).Text += '*';
}
private void textBox1_KeyPress(object sender, KeyPressEventArgs e)
{
InputText.Append(Convert.ToString(e.KeyChar));
e.KeyChar = '*';
}
经过测试,比较简单~
private void textBox1_KeyPress(object sender, KeyPressEventArgs e)
{
InputText.Append(Convert.ToString(e.KeyChar));
e.KeyChar = '*';
}
这个方法确实有效,但是我的密码不能获取了啊,我是做的用户登陆的界面,怎么获取我本身输入的密码呢?
谢谢!!