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