1

我正在使用 CodeIgniter,并正在创建用户需要登录的网站部分。我一直在阅读有关将密码存储为 MD5 哈希和使用盐的加密字符串的信息,但我没有看到任何关于解密的信息。

对密码尝试进行加密是否有效/安全,就像在存储密码以检查验证时的加密方式一样?

这是在 php 应用程序中存储密码还是使用 CodeIgniter 框架的推荐方法?

4

6 回答 6

3

已经有 auth 库“准备就绪”(开箱即用),这里是另一个问题的链接,类似于这个 http://www.stackoverflow.com/questions/346980/how-should- i-choose-an-authentication-library-for-codeigniter
note我喜欢带有“组”的Tank Auth

于 2013-05-31T09:59:08.963 回答
1

CodeIgniter 使用一个名为“Tank Auth”的库:http: //konyukhov.com/soft/tank_auth/ 它包含“PasswordHash.php”类:http: //bit.ly/1gahwtT

示例代码:

require "PasswordHash.php";

define("phpass_hash_portable",TRUE);
define("phpass_hash_strength",8);

$hasher = new PasswordHash(phpass_hash_strength,phpass_hash_portable);
if ($hasher->CheckPassword($password_to_check, $original_encoded_password)) {
    echo "password correct";
} else {
    echo "password incorrect";
}
于 2014-02-13T10:12:30.137 回答
0

您的答案上的两条评论显示了指向好的答案的链接,以添加更多内容。如果您只是喜欢散列,您也可以使用crypt。注意 crypt 不同于 mcrypt 曾经愚弄过我一次。可以在 laravel3 Hash class上找到 crypt 的示例。或者您也可以使用php pass,这是一个利用 OpenBSD 风格的基于 Blowfish 的 bcrypt 的库。

多亏了 cryptic,ircmaxell 也有一个哈希库在这里查看

于 2013-05-31T03:21:16.513 回答
0

不要使用 md5 或 base64。Sha1也坏了。最好使用 bcrypt。

您可以将此与 codeigniter 一起使用来验证 bcrypt 密码

于 2017-07-21T14:24:20.797 回答
-2

密码以散列格式存储,因为在大多数情况下不需要将它们恢复为原始字符串。md5 函数生成一个唯一的 32 个字母长的字符串,只需比较两个哈希值即可验证该字符串。要回答您的问题:

  • 是的,这是保存密码的标准方法。

  • MD5 不再足够安全,所以大多数人开始使用 php哈希

当然,使用算法“sha512”和盐来发挥作用。

于 2013-05-30T22:42:55.023 回答
-3

这个功能可能对你完全有用..

$this->load->library('encrypt');
$this->encrypt->sha1($yaourpassword);
于 2013-05-31T10:16:54.257 回答