我希望有一个页面需要密码才能登录,但没有数据库。
我正考虑在页面中对其进行硬编码,即:
$password = "something"
或加密并将其存储在文本文件中?
感谢任何建议。
答案 0 :(得分:4)
您可以使用PHP的md5加密库来加密密码,然后将其存储在文本文件中。由于md5不可逆,因此密码是安全的。
您绝对不希望以纯文本格式存储。
您也可以将密码存储在PHP文件中,但使用加密的哈希值。该文件的优点是数据与业务逻辑分离,这可以使添加数据库或稍微更容易使用多个用户/密码。
更新:如果您在未加密的PHP脚本中以纯文本格式存储密码,那么任何攻击服务器或有权访问服务器的人都可以读取纯文本PHP文件的内容。< / p>
答案 1 :(得分:4)
如果它不在数据库中,我倾向于将它存储在服务器webroot之外的文本文件中。如果你将它存储在php脚本中,并且服务器配置发生了某些事情,那么php脚本可能以纯文本形式提供,而不是通过php解析,因此密码是可见的。当然,在正常情况下,这不太可能发生,但这可能存在风险。对它进行加密可能有所帮助,但您还必须将解密密钥存储在某个地方,因此对某人进行解密只会带来轻微的不便。最好以密码格式(例如MD5或SHA-1)存储密码,使用相同的方法对用户输入的密码进行哈希处理,然后比较哈希值。
答案 2 :(得分:3)
你可以做其中任何一个。只需确保存储密码的哈希值,而不是真正的密码哈希值。这是非常简单的例子。
<?
if(md5($_REQUEST['password']) == 'md5ofyourpasswordHERE'){
//do your logged in page stuff here.
} else {
//kick them out or tell them to resupply password.
}
?>
您也可以检查用户名,如果这对您很重要。
希望有所帮助!
答案 3 :(得分:1)
如果你想在文本文件中存储或在php脚本中硬编码,我会建议哈希吧
echo sha1('your password');
if ( sha1($password) == '543f3fc32c232c32') ...
你也可以使用md5进行散列
这两种方法都是一种方式,所以“确保你会记住你的密码”