繁体   English   中英

安全登录PHP CodeIgniter

[英]Secure Login PHP CodeIgniter

我正在使用简单的登录类作为起点来构建CodeIgniter应用程序的登录部分。 一切正常,但是我不确定加密类型和使用哪种加密之间的差异。

我已经将crypt()函数与用户的密码一起使用了(通过md5),就像这样:

$pass == crypt($_POST['login_password'], md5($_POST['login_password']))

这种方法可行吗,还是该方法存在明显错误? 由于密码或盐都未存储在数据库中,因此这似乎很安全。 还是有点明显?

提前致谢。

http://php.net/manual/en/faq.passwords.php

这是实现密码的正确方法。

以下所有内容均无关紧要。


有了您所拥有的,一个简单的

$pass = md5($_POST['login_password'] . "somerandomchars");

除非需要高度的安全性,否则在大多数情况下就足够了。

如果您使用的是CodeIgniter,我强烈建议您查看TankAuth身份验证插件。

codeigniter还提供了内置的加密库。 您在配置文件(application / config / config.php)中提供“盐” $ config ['encryption_key']

即使可以“解密”,它也很安全:

$this->load->library('encrypt');
//encryption
$pass = $this->encrypt->encode($this->input->post('login_password'));

使用$pass = do_hash($this->input->post('password')); 并将security_helper包含到您的autoload.php中

在现代应用程序中,网站密码不使用crypt来存储。 使用带有盐的哈希值要安全得多(如果有人闯入您的数据库,则没有密码。只有密码的哈希值是他们不能用来登录的密码),并且crypt确实不是很安全。 不幸的是MD5也有问题,所以我建议使用SHA512作为哈希。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM