使用MD5+SHA1混合进行加盐加密

首先,咱们来看一下原始的密码,这里咱们简单点,使用了123456做为测试用的密码,可是真实生活中,最好不要把密码设为123456.c#

string password = "123456";

OK,那么如今咱们来建立加密对象安全

MD5 md5 = MD5.Create();//建立MD5加密对象
SHA1 sha1 = SHA1.Create();//建立SHA1加密对象

而后咱们须要开始进行密码加密了测试

byte[] data = Encoding.Default.GetBytes("D" + password + "R");//以D和R作盐,进行加盐加密,这样就算你的原始密码泄露,加密后的密码也没法被破解
byte[] data_md5 = md5.ComputeHash(data);//先进行MD5加密
byte[] data_md5_sha1 = sha1.ComputeHash(data_md5);//再进行SHA1二次加密

这里咱们使用了D和R做为"盐",分别放在字符串前面和后面,这样能够保证实文密码被破解了仍是没法得到咱们加密后的密码,更加保证了安全性.ui

而后咱们须要使用StringBuilder得到咱们加密后的密码:加密

StringBuilder builder = new StringBuilder();
foreach (var item in data_md5_sha1)
{
    builder.Append(item.ToString("x2"));//再把加密后的密码转换为16进制,防止暴力破解
}

string password_with_encrypted = builder.ToString();//获得加密后的新密码

在这期间咱们还把每一个字符转换为了16进制,这是为了防止暴力破解.code

用完以后,咱们最好清空加密对象对象

md5.Clear();
sha1.Clear();

输出看结果:md5

Console.WriteLine("The password with encrypted is :" + password_with_encrypted);
The password with encrypted is :fa5c941309545bdb150bcd78db45395a0403edc4
相关文章
相关标签/搜索