目前据说MD5部分不安全.考虑到这一点,我想知道用于密码保护的机制.
这个问题,"双重哈希"密码是否比仅仅哈希一次更安全? 建议多次散列可能是一个好主意,而如何实现单个文件的密码保护?建议使用盐.
我正在使用PHP.我想要一个安全快速的密码加密系统.散列密码一百万次可能更安全,但也更慢.如何在速度和安全性之间取得良好的平衡?另外,我更喜欢结果具有恒定数量的字符.
另外,我应该在数据库中存储两个字段(例如,一个使用MD5,另一个使用SHA)?它会使它更安全或更不安全吗?
如果我不够清楚,我想知道使用哪种散列函数以及如何选择好的盐以便拥有安全和快速的密码保护机制.
相关问题并不完全涵盖我的问题:
PHP中的SHA和MD5有什么区别
简单密码加密
存储密钥的安全方法,asp.net的密码
如何在Tomcat 5.5中实现salted密码
在数据库中存储密码的首选方法/数据类型是什么(最好是SQL Server 2005).我在几个应用程序中一直使用的方法是首先使用.NET加密库,然后将它们作为二进制文件存储在数据库中(16).这是首选方法还是我应该使用不同的数据类型或分配比16更多的空间?
在CBC模式下使用AES加密给定密钥并使用IV(当然)是否有任何安全方面的缺点?
原则得到尊重:密钥是秘密的,IV是公开的(因为这不会影响加密的安全性).
但是,潜在的攻击者会知道(因为他可以访问源代码),该字符串是使用自身作为密钥加密的.
我的判断没有看到任何问题,但我正在努力确保.
谢谢.
编辑 - 任务的细节,我希望我能够清楚地传递它们,对我自己来说还不是很清楚:
我的系统使用加密来在MySQL表中存储某些值.加密是在PHP代码(而不是MySQL内置AES)上执行的.显然,我需要一个密钥,需要在系统设置时由系统管理员设置,只需ONCE.这很关键,因为在保存任何加密数据之后更改密钥将使该数据不可解密.
管理员只需通过FTP(或其他)编辑PHP脚本文件即可设置密钥.但这不是我想要的.
我想要的是拥有一个安装脚本,在此期间管理员选择密钥,该秘密密钥自身加密并存储到表中.当然,下面提到的一个有效点是,你需要密钥来解密密钥...我的理由并没有得到很多,我正处于调查是否加密密钥的阶段关键还是一件安全的事情.
如果您对上述内容有任何想法,我们将不胜感激.
谢谢.
我正在将ASP.NET成员资格用于主要服务于高级用户的网站.我理解散列和加密密码之间的区别,我正在尝试在两者之间做出决定.
在我的上一个客户抱怨哈希密码是一个完整的PITA之后,我开始偏爱加密密码了.但有人认为这不够安全.
所以我的问题是:加密密码的风险究竟是什么?任何能够通过从数据库解密密码来窃取密码的人肯定能够重置它们,如果它们被散列,不是吗?我很难看到有人可能会因加密密码而导致问题,但无法使用加密密码.使用户方便也很重要.
passwords ×3
encryption ×2
security ×2
asp.net ×1
database ×1
hash ×1
php ×1
protection ×1
sql-server ×1