原文地址: http://ainux.blog.hexun.com/2815875_d.html


现在加密技术很多,比如SHA,MD5(已经被破解了),小可想和大家讨论一下在.NET框架中简单应用SHA算法加密用户登录密码的方法。
这里我采用的是SHA1(安全散列算法),是将不定长的字符串转换成160位(20字节)字节流散列算法。
这里讲的加密一般分以下几个步骤:

密码的建立:
1)对用户的原始密码进行第一次哈希,得到UnsaltedPassword:
User password ====hash====> UnsaltedPassword (20B)
2)随机产生一个N字节的密钥值(salt value),拼接到上面哈希后的字节流后面即
UnsaltedPassword(20B) | Salt value(NB)
3)将以上(20 + N)Byte的字节流再经过一次哈希,得到SaltedPassword
UnsaltedPassword(20B) | Salt value(NB) ====hash====> SaltedPassword
4)将SaltedPassword(20B) | Salt value(NB)存入数据库

密码的验证:
1)从数据库中获得加密后用户密码 dbPassword,取其最后N字节作为Salt value
2)重复上面1) 3) 4)将用户输入的密码结合Salt value进行哈希加密,和dbPassword进行比较以确定用户输入密码是否正确


 

[转]C#用SHA对密码加密private void btnLogon_Click(object sender, EventArgs e)

相关文章:

  • 2021-07-08
  • 2021-07-16
  • 2022-12-23
  • 2022-12-23
  • 2021-10-27
  • 2022-12-23
  • 2022-12-23
猜你喜欢
  • 2021-09-15
  • 2021-12-20
  • 2021-11-12
  • 2022-03-07
  • 2021-08-14
  • 2022-12-23
  • 2022-12-23
相关资源
相似解决方案