加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

c# – 使用.NET进行安全密码编程

发布时间:2020-12-16 01:50:46 所属栏目:百科 来源:网络整理
导读:我想在安全哈希码中转换安全密码.最好的方法? 像:SHA1,MD5和任何组合? string str ="Krishna";Output:"!#$!$ASDFAS@#$%@"; 解决方法 有不同的方法可以创建可用于腌制的随机数据.最常见的是: 使用Guid类型创建随机GUID 使用RNGCryptoServiceProvider类创
我想在安全哈希码中转换安全密码.最好的方法?

像:SHA1,MD5和任何组合?

string str ="Krishna";

Output:"!#$!$ASDFAS@#$%@";

解决方法

有不同的方法可以创建可用于腌制的随机数据.最常见的是:

>使用Guid类型创建随机GUID
>使用RNGCryptoServiceProvider类创建随机数字字符串

要创建新的随机GUID,我们在Guid类型上调用NewGuid方法.生成后,我们只需将salt附加到要加密的字符串即可.

string saltAsString = Guid.NewGuid().ToString();

要使用RNGCryptoServiceProvider类创建随机数字字符串,我们首先初始化提供程序和字节数组,然后在我们的提供程序实例上调用GetBytes方法.

byte[] saltInBytes = new byte[8];
RNGCryptoServiceProvider saltGenerator = new RNGCryptoServiceProvider();
saltGenerator.GetBytes(saltInBytes);
string saltAsString = Convert.ToBase64String(saltInBytes);

以下代码是上一个代码片段的修改版本,用于演示salting.

public void HashText()
{
    string textToHash = "password"; 
    string saltAsString = Guid.NewGuid().ToString();
    byte[] byteRepresentation 
        = UnicodeEncoding.UTF8.GetBytes(textToHash + saltAsString);

    byte[] hashedTextInBytes = null; 
    MD5CryptoServiceProvider myMD5 = new MD5CryptoServiceProvider();
    hashedTextInBytes = myMD5.ComputeHash(byteRepresentation); 
    string hashedText = Convert.ToBase64String(hashedTextInBytes); 

    // will display X03MO1qnZdYdgyfeuILPmQ==
    MessageBox.Show(hashedText);
}

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读