Cryptography 使用md5或sha1进行的密码哈希仍然有效吗?
刚才我在一个金融项目工作。这里,团队正在考虑使用Cryptography 使用md5或sha1进行的密码哈希仍然有效吗?,cryptography,md5,sha1,password-hash,cryptographic-hash-function,Cryptography,Md5,Sha1,Password Hash,Cryptographic Hash Function,刚才我在一个金融项目工作。这里,团队正在考虑使用MD5进行密码散列。 但是,今天很容易复制要解密的SHA1或MD5密码,如果它们是复杂密码,则包括: 我的$uper$ecur3PAS$word+448,你可以使用一个在线页面来解密它,它就在那里。 中小型开发人员(包括我)使用那些散列方法,但我认为这还不足以提供数据库的安全性。 (不包括防火墙,网络安全,iptables等) 有人能告诉我解决此漏洞的更好方法是什么吗?您的想法是正确的,MD5和SHA1不应用于密码哈希。按照优先顺序,我建议如下:
MD5
进行密码散列
。
但是,今天很容易复制要解密的SHA1
或MD5
密码,如果它们是复杂密码,则包括:
我的$uper$ecur3PAS$word+448
,你可以使用一个在线页面来解密它,它就在那里。
中小型开发人员(包括我)使用那些散列方法
,但我认为这还不足以提供数据库的安全性。
(不包括防火墙
,网络安全
,iptables
等)
有人能告诉我解决此漏洞的更好方法是什么吗?您的想法是正确的,MD5和SHA1不应用于密码哈希。按照优先顺序,我建议如下:
- argon2
- bcrypt
- 刺耳
- PBKDF2
- Argon2是密码哈希竞赛的获胜者,应被视为新应用程序的首选李>
- PBKDF2,当需要在多个平台上获得FIPS认证或企业支持时李>
- scrypt,其中抵抗任何/所有硬件加速攻击是必要的,但支持不是
- bcrypt,其中PBKDF2或scrypt支持不可用
- 在创建每个存储凭证时生成唯一的salt(不仅仅是针对每个用户或系统范围)
- 使用加密的强随机数据
- 在存储允许的情况下,使用32字节或64字节的salt(实际大小取决于保护功能)李>
- 方案安全性不依赖于隐藏、拆分或以其他方式隐藏salt
- 防止受保护窗体显示两个相同的凭据和
- 在不依赖凭证复杂度的情况下,增加为保护函数提供的熵李>
嗯,这是一个一般性的问题。基本上,node/Js、python、c#和php对大多数堆栈溢出用户来说都是受欢迎和有用的。您的偏好顺序是您的偏好还是安全专家的偏好(或者两者兼而有之)?我想说两者,但公平地说,意见各不相同。一般认为(argon2,bcrypt,scrypt)>(PBKDF2)。但在这一主要群体中,意见往往各不相同。我认为,实际上,argon2、bcrypt或scrypt中的任何一个都很好。在散列密码时,冲突实际上不是问题,而是速度,正如您所提到的。更清楚地说,用GPU计算每秒200千兆MD5是可能的。