您需要使用适当安全的算法对密码进行加盐和哈希。
通过使用标准库,最简单的方法来确保你的密码存储方案安全。
因为安全性往往比大多数程序员自己处理更加复杂,并且存在更多不可见的错误可能性,因此使用标准库几乎总是最容易和最安全(如果不是唯一)的选择。
有关更多信息,请参见此答案
您可能想要对密码进行哈希处理,而不是加密。查看SHA-1。哈希处理意味着您无法像加密一样检索原始数据。相反,您需要对用户输入进行哈希处理,并将其与数据库中的哈希值进行比较,以查看他们是否拥有正确的密码。这样做可以增加安全性,因为如果您的数据库被攻击,一堆哈希值也是无用的。
保存一个MD5哈希值,并为了增加安全性,添加盐。
使用SHA-1(sha1 php内置函数)对密码进行哈希处理,并进行多次盐值递归(与上面答案中的相同代码,只需循环几次即可)。这应该足够保护,因此即使入侵者以某种方式获取了哈希值,他们也不应该能够破解它们...
嗯,你不应该用MD5加密它们(这并不是真正安全的,大多数黑客都有转换表)。
因此,你可以使用SHA1进行哈希(通常使用)。
如果你想要更高的安全性,你可以添加更多的“盐”,这是一个你可以像这样添加的“密钥”(只是一个例子,通常使用):
salt+sha1(salt+pass)
这个组合可以与许多语言一起使用。
有可能对密码进行哈希处理(最好加盐):
$salt = random_string($length = 5);
$hash = $salt . sha1($salt . $password);
或者存储加密数据(仅在您的MySQL连接已经SSL加密的情况下):
INSERT INTO `user` (`user`,`pass`) VALUES("username",ENCRYPT("password","secretkey"))