密码加密算法,SHA2还是SHA1

kaukiyou 2009-11-18 06:36:38
MD5肯定不行了。

客户的要求是不可逆,就是开发人员,数据库管理员也不能通过任何办法获取密码。

考虑到这个需求,使用SHA2还是SHA1呢?

大家讨论下吧。
...全文
2027 24 打赏 收藏 转发到动态 举报
写回复
用AI写文章
24 条回复
切换为时间正序
请发表友善的回复…
发表回复
kaukiyou 2009-11-19
  • 打赏
  • 举报
回复

SHA1 sha = new SHA1CryptoServiceProvider();
byte[] hashedData = sha.ComputeHash(Encoding.UTF8.GetBytes(str));
return BitConverter.ToString(hashedData).Replace("-", string.Empty);
lovexilove 2009-11-19
  • 打赏
  • 举报
回复
谁跟你说md5是可逆的啊? 乱讲
惜分飞 2009-11-19
  • 打赏
  • 举报
回复
des
ras加密吧
watsonchia 2009-11-19
  • 打赏
  • 举报
回复
MD5被破解的新闻是假的 - -
jiezi316 2009-11-19
  • 打赏
  • 举报
回复

就MD5就可以了。
vrhero 2009-11-19
  • 打赏
  • 举报
回复
[Quote=引用 18 楼 kaukiyou 的回复:]
这样子的话,把常用的一些字符组合下,然后hash加密,存放在数据库中, 就可以去攻击某些简单的密码了啊。
[/Quote]
正确,这样的网站已有很多...所以加密算法其实不是关键,关键是密码...再高级的加密算法也不能保护一个愚蠢的用户...如果你经常看谍战电影或二战实录,就会发现在战争时期间谍们拼命争夺的是密码本而不是算法...
kaukiyou 2009-11-19
  • 打赏
  • 举报
回复
[Quote=引用 17 楼 vrhero 的回复:]
引用 16 楼 kaukiyou 的回复:
无论在哪里对 ‘88888888’ 进行SHA1加密, 结果是不是唯一的?


当然是...不唯一还叫摘要吗...

SHA-1足矣...虽然被“破解”但那是理论家们的事,而且也只是大大提高碰撞概率并不是顺便就能还原原文,还原是不可能的,否则王教授用它写个压缩算法就发大财了...SHA-1目前在较低级别商用中依然非常安全...
[/Quote]
这样子的话,把常用的一些字符组合下,然后hash加密,存放在数据库中, 就可以去攻击某些简单的密码了啊。
vrhero 2009-11-19
  • 打赏
  • 举报
回复
[Quote=引用 16 楼 kaukiyou 的回复:]
无论在哪里对 ‘88888888’ 进行SHA1加密, 结果是不是唯一的?

[/Quote]
当然是...不唯一还叫摘要吗...

SHA-1足矣...虽然被“破解”但那是理论家们的事,而且也只是大大提高碰撞概率并不是顺便就能还原原文,还原是不可能的,否则王教授用它写个压缩算法就发大财了...SHA-1目前在较低级别商用中依然非常安全...
kaukiyou 2009-11-19
  • 打赏
  • 举报
回复
无论在哪里对 ‘88888888’ 进行SHA1加密, 结果是不是唯一的?
yangxxxxxx66 2009-11-19
  • 打赏
  • 举报
回复
自己整一個
kaukiyou 2009-11-19
  • 打赏
  • 举报
回复
我想还是用SHA1吧, 如果将来需要升级,直接SHA3.
呵呵。
daichenghua 2009-11-18
  • 打赏
  • 举报
回复
[Quote=引用 12 楼 lvyinghong 的回复:]
最好搞个安全一点的,再加入自己的一点特殊处理,不要用标准的哈哈,让人猜不到
[/Quote]

赞同
lvyinghong 2009-11-18
  • 打赏
  • 举报
回复
最好搞个安全一点的,再加入自己的一点特殊处理,不要用标准的哈哈,让人猜不到
MoFzAgel 2009-11-18
  • 打赏
  • 举报
回复
SHA1 现在来说 还是很安全的
qqzeng-ip 2009-11-18
  • 打赏
  • 举报
回复
算法 输出位数 状态位 状态数 位 轮数 撞车
SHA-0 160 160 2^64 − 1 32 80 Yes
SHA-1 160 160 2^64 − 1 32 80 None (2^52 attack)[10]

SHA-2
SHA-256/224 256/224 256 2^64 − 1 32 64 None
SHA-512/384 512/384 512 2^128 − 1 64 80 None

结论:应该用 SHA-2 ……
jshi123 2009-11-18
  • 打赏
  • 举报
回复
MD5和SHA1是使用最广泛的摘要算法,但在2005年被王小云教授先后破解,所以安全性遭到怀疑。
SHA-2家族包括SHA-224, SHA-256, SHA-384和SHA-512,它们生成的摘要密文分别就是224,256,384,512位,到目前为止还没有SHA-2破解的报告。

虽然MD5和SHA1算法有漏洞,但也不意味着这一密码体系彻底被破解,因为破解一个密码就需要超级计算机的海量运算,而通常的安全机制中都包含多因素的防护,比如一段时间内限制密码尝试的次数等。

虽然SHA-2比SHA-1具有更高的安全性,但是SHA-2应用并不广泛,原因是在某些操作系统上缺乏支持,比如WindowsXP SP2以前的版本,不过IETF已经建议2010年以后要尽量采用SHA-2。

虽然.net中缺省支持SHA-2,但是实际上是调用操作系统的Win32 crypto service,摘要算法是调用CryptSignHash 函数来实现的,而因为某些OS版本不支持SHA-2,所以就不一定在所有的机器上都能运行,这个是选择SHA1还是SHA2事先要考虑的!! 如果要在不特定客户端部署的话,就要先做一些测试,前不久还有一个帖子就是遇到这样的问题,到现在还没有解决(如果有谁知道解决方法请告诉我,非常感谢)
wuyq11 2009-11-18
  • 打赏
  • 举报
回复
最好使用SHA-512
wuyi8808 2009-11-18
  • 打赏
  • 举报
回复
可以考虑SHA512。
kaukiyou 2009-11-18
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 zengfanxing 的回复:]
sha1
[/Quote]

SHA1不是也有方法可以破解吗?
红街咖啡 2009-11-18
  • 打赏
  • 举报
回复
MD5、SHA-1都不能解密。不过有人破解过..
加载更多回复(3)

62,046

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧