您的位置:首页 > 编程语言

.net编程比较简单实用的加密方法HASH加密和MD5加密

2010-10-24 19:30 465 查看
csdn 标签: MD5HASHBINARTRAW简单实用加密 简单介绍一下HASH
HASH就是把一系列不定长2进制输出为一个定长的2进制。
HASH用来做什么?现在一般是用来验证一段信息有没被篡改过或者就是保存密码的HASH值用于日后验证又防止别人查看这个记录窃取密码。
HASH值是不可逆的,不存在破解不破解的问题

newUser.UserName = txtUserName.Text;
 newUser.Password = EncryptPassword(txtPassword.Text);
EncryptPassword如下:
 public static byte[] EncryptPassword(string password)
        {
            UnicodeEncoding encoding = new UnicodeEncoding();
            byte[] hashBytes = encoding.GetBytes(password);
            SHA1 sha1 = new SHA1CryptoServiceProvider();
            byte[] cryptPassword = sha1.ComputeHash(hashBytes);
            return cryptPassword;
        }



用户名密码都是AA1 加密后长度64位





简单介绍一下MD5

MD5的全称是message-digest algorithm 5(信息-摘要算法,在90年代初由mit laboratory for computer science和rsa data security inc的ronald l. rivest开发出来, 经md2、md3和md4发展而来。

MD5具有很好的安全性(因为它具有不可逆的特征,加过密的密文经过解密后和加密前的相同的可能性极小)


newUser.UserName = txtUserName.Text;                   
newUser.Password = EncryptPasswordMD5(txtPassword.Text);

EncryptPasswordMD5 如下:
 public static byte[] EncryptPasswordMD5(string password)
        {
            UnicodeEncoding encoding = new UnicodeEncoding();
            byte[] result = encoding.GetBytes(password);     
            MD5 md5 = new MD5CryptoServiceProvider();
            byte[] cryptPassword = md5.ComputeHash(result);
            return cryptPassword;
        }



用户名 密码 都是BB1 加密后长度32位





注意点

两个都要引用

using System.Security.Cryptography;


using System.Text;

存储在数据库中的时候 数据库的字段要用二进制

举例SQLSERVER BINARY

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