我对整个盐渍的东西很陌生。
假设我在配置.php中存储了(crypt($pass,$salt))
的管理员密码。
现在我不认为在config.php文件中在我的(加密)密码正下方$salt
一个随机字符串是个好主意,对吧?
我还没有找到一个教程可以告诉我应该在哪里储存我的盐,或者如何以智能的方式实际使用它。
另外,即使我的管理员是唯一的管理员,我是否应该将我的管理员登录详细信息存储在数据库中?
PHP 版本 5.1
<?php
//Admininstration
$ad_uname = "church"; #username
$ad_pass = "sj50sl3ZE8ABM"; #password: crypt("blablah", $salt)
$salt = "sjoirjoewtointontont"; #salt
?>
看看 PHP 的函数 password_hash(),它完全按照应有的方式解决了问题。盐作为生成的哈希值的一部分包含在内,并且是纯文本。盐的目的是防止彩虹表攻击。
您想到的是添加服务器端机密,这可以通过添加 pepper 或之后使用双向加密算法(除了加盐)加密哈希值来完成。困难在于,在哪里存储此密钥,如果攻击者已经拥有读取您的源代码的权限,他也将有权访问您的密钥(代码必须能够读取它)。如果您对这个主题更感兴趣,请看一下本教程。