您的位置:首页 > 其它

使用MD5对密码进行加密

2013-01-15 09:18 471 查看
项目中需要在登录验证用户名、密码的时候对密码进行加密处理,由于是比较商业化的软件,所以安全方面还是必须要考虑的。而使用MD5随机散列加密算法使得密码加密后不可逆,很大程度上提升了安全性。废话不多说,看例子。

MD5加密类

using System;
using System.Text;
using System.Security.Cryptography;

namespace encryptType
{
    public class Encrypt
    {
        public string encrypt(string strPwd)
        {
            String str = "";

            // 初始化MD5对象
            MD5 md5 = new MD5CryptoServiceProvider();
            // 将字符编码为一个字节数组
            byte[] data = Encoding.Default.GetBytes(strPwd);
            // 计算data字节数组的哈希值
            byte[] md5Data = md5.ComputeHash(data);
            // 清空md5
            md5.Clear();
            // 遍历md5Data哈希数组
            for (int i = 0; i < md5Data.Length-1; i++)
            {
                str += md5Data[i].ToString("x").PadLeft(2, '0');
            }

            return str;
        }
    }
}
窗体代码

// 定义变量
String userName = "yh101";
String passWord = "1234";
//String userName = txtUserName.Text.Trim();
//String passWord = txtPwd.Text.Trim();
//String str1 = "";
//String str2 = "";
            
// 实例化加密类
Encrypt encrypt = new Encrypt();
// 加密密码
String strPwd = encrypt.encrypt(passWord);

// 验证用户名
if (userName != txtUserName.Text.Trim())
{
     MessageBox.Show("用户名不存在,请重新输入!");
     txtUserName.Clear();
     txtUserName.Focus();
     return;
}
            
// 将输入的密码进行加密
String strMima = encrypt.encrypt(txtPwd.Text.Trim());
// 验证密码
if (strMima != strPwd)
{
     MessageBox.Show("密码不正确,登录失败!");
     txtPwd.Clear();
     txtPwd.Focus();
     return;
}

MessageBox.Show("密码正确,登录成功!" + "输入密码:" + strMima + "原密码:" + strPwd);
界面效果图



内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: