Php codeginiter函数中的密码加密

Php codeginiter函数中的密码加密,php,codeigniter,encryption,login,md5,Php,Codeigniter,Encryption,Login,Md5,如何在codeigniter上加密密码。这是我的密码 $password = $this->security->xss_clean($this->input->post('password')); 如何使其成为md5?要具体执行您需要的操作,以下代码将起作用: $password = md5($this->security->xss_clean($this->input->post('password'))); 然而,正如评论中所述,md5是存

如何在codeigniter上加密密码。这是我的密码

$password = $this->security->xss_clean($this->input->post('password'));

如何使其成为md5?

要具体执行您需要的操作,以下代码将起作用:

$password = md5($this->security->xss_clean($this->input->post('password')));
然而,正如评论中所述,md5是存储密码的一个非常糟糕的选择,应该不惜一切代价避免使用。您还应该避免使用sha1和任何其他快速散列的内容。有关更多信息,请查看杰夫·阿特伍德的博客文章。具体包括以下部分:

至于发展商:

仔细选择新密码哈希算法,并移动所有密码 旧的密码散列系统更难计算散列。你 需要专门设计为难以计算的哈希 GPU,比如scrypt

即使你选择了“正确”的散列,如果你的工作 系数不够高。Matsano建议如下:

scrypt:N=2^14,r=8,p=1

bcrypt:成本=11

带SHA256的PBKDF2:迭代次数=86000

但这些只是指导方针;您必须将散列工作扩展到 服务器或设备上可用且合理的内容。对于 例如,我们在讨论中遇到了一个小的拒绝服务错误,我们 允许用户在登录中输入多达20000个字符的密码 表单,然后计算散列值需要,呃…几秒钟

这篇文章还介绍了任何给定哈希算法破解密码的速度(每秒尝试次数)

  • NTLM=35000000000
  • MD5=180000000000
  • SHA1=630000000000
  • SHA512Crypt=364000
  • bCrypt=71000
显然,每秒可以执行的尝试次数越少,中断哈希所需的时间就越多


考虑到这一点,请重新考虑应用程序的哈希选择,并使其对密码使用合理的哈希

可能的重复:?md5是非常糟糕的选择。此外,不要XSS清除密码,因为这可能会删除其中的字符,从而降低安全性。对要哈希的内容应用XSS清理不会带来任何好处。如果这不起作用,请使用初始行,然后在下面的行上执行do
$password=md5($password)。有时候你需要分两步来做事情。除此之外,您是否重新考虑过将密码存储为MD5散列?非常感谢:)您能否帮助我如何检查我在网站上的登录状态。例如