首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >加密/解密方法

加密/解密方法
EN

Stack Overflow用户
提问于 2012-02-05 20:58:49
回答 3查看 3.5K关注 0票数 4

我知道有十几个关于这方面的问题。但是我想知道是用sha1,sha512等散列方法加密登录系统的密码会更好,还是使用Mcrypt密码更好?

我知道在使用像sha这样的散列方法加密后再解密是不可能的,如果使用mcrypt进行加密,这是可能的。但使用mcrypt是否安全,因为您也可以解密?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2012-02-05 21:01:33

Passwords must not be recoverable。散列它们的目的是确保如果数据库遭到破坏,攻击者无法访问每个密码,从而无法访问每个用户的帐户(以及密码已被重复使用的其他服务上的每个帐户)。

票数 4
EN

Stack Overflow用户

发布于 2012-02-05 21:02:00

对于以后不需要明文密码的密码存储,您应该始终使用哈希函数。通过这种方式,您可以检查密码,但潜在攻击者无法找到明文密码(当用户始终使用相同的密码时,这一点很重要)

票数 1
EN

Stack Overflow用户

发布于 2012-02-05 21:13:46

密码不得恢复。因此,您需要使用散列算法。最受欢迎的是MD5SHA1。我不建议使用MD5,因为它很容易受到攻击,而且有许多预先生成的哈希。SHA1更好,但它也有一些。最安全的是基于thisSHA256/SHA512 ( SHA2系列的一部分)。不过,SHA2家族的问题在于它在很大程度上是基于SHA1的。它还没有被打破,但它很快就会被打破。如果您有时间,可以移植为SHA3竞赛设计的算法之一或不太知名的算法。如果你能安装扩展,那么SHA3的竞争者已经有了扩展。

安全级别的一个很好的表是在Wikipedia。如果你已经选择了,你应该搜索"collision attack on algorithm“和[preimage attack on algorithm]来看看是否有攻击(维基百科可能已经过时了)。

另外,别忘了加盐。这意味着您可以用“Whatever”代替$string来散列$string+。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9149422

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档