如何在codeigniter上加密我的密码。这是我的代码
$password = $this->security->xss_clean($this->input->post('password'));
如何制作md5?
答案 0 :(得分:1)
要具体执行您需要的操作,以下代码将起作用:
$password = md5($this->security->xss_clean($this->input->post('password')));
但是,正如评论中所述,md5是存储密码的一个非常糟糕的选择,应该不惜一切代价避免使用它。你还应该避免使用sha1和其他任何快速哈希的东西。有关更多信息,请查看Jeff Atwood的博客文章your password is too damn short。具体如下:
对开发者来说:
仔细选择新密码哈希算法,然后移动所有密码哈希算法 旧密码哈希系统更难以计算哈希值。您 需要专门设计为难以计算的哈希值 GPU,就像scrypt一样。
即使你选择了“正确”的哈希,如果你的工作也可能容易受到攻击 因素不够高。 Matsano建议如下:
scrypt:N = 2 ^ 14,r = 8,p = 1
bcrypt:cost = 11
PBKDF2与SHA256:迭代= 86,000
但这些只是指导方针;你必须将散列工作扩展到 您的服务器或设备上可用且合理的内容。对于 例如,我们在Discourse中有一个轻微的拒绝服务错误 允许用户在登录时输入最多20,000个字符的密码 形成,并计算所用的哈希,呃......几秒钟。
这篇文章还介绍了为任何给定的哈希算法(每秒尝试次数)尝试破解密码的速度有多快
显然,每秒可执行的尝试次数越少,打破散列所需的时间就越多。
考虑到这一点,请重新考虑您的应用程序的哈希选择,并使其使用合理的密码哈希