简单的密码加密
什么是用于保护数据库中密码的好的简单加密方案? 我不一定需要任何超安全的东西,也不需要任何闪电般的东西,但那些东西会很好。 首先,我只想要一些容易实现而不会非常慢或不安全的东西。
正如mk所说,SHA1或MD5是标准的,以及SHA2。
你想要什么更一般地称为加密散列函数。 加密哈希被设计为单向的(给定哈希结果,你不应该能够得到原始输入)。 此外,具有相同散列的两个任意字符串(称为散列冲突)的可能性应该较低(理想情况下为1 /散列值的数量)。
不幸的是,仅仅因为你的密码被哈希处理并不能使你不必为了保证哈希版本的安全而努力。 太多的人会使用弱密码,而这些密码很容易受到离线暴力攻击的影响。
编辑 - 几个人也已经指出使用盐的重要性。 salt是一个常量值,在使用散列函数之前,您可以将其与输入混合。 拥有独特的盐可以防止脱机攻击者使用预先计算的常用密码表(彩虹表)来更快地强制您的密码。
MD5或SHA1 +盐。
如果您使用MD5或SHA1,请使用盐以避免彩虹桌面黑客入侵。
在C#中这很简单:
MD5CryptoServiceProvider hasher = new MD5CryptoServiceProvider();
string addSalt = string.Concat( "ummm salty ", password );
byte[] hash = hasher.ComputeHash( Encoding.Unicode.GetBytes( addSalt ) );
链接地址: http://www.djcxy.com/p/21525.html
上一篇: Simple password encryption
下一篇: How to implement password protection for individual files?