gpt4 book ai didi

codeigniter - 使用 Codeigniter 存储密码的最安全方法是什么?

转载 作者:行者123 更新时间:2023-12-04 00:28:37 24 4
gpt4 key购买 nike

我正在为我当前的项目使用 Code Igniter。

截至目前,我正在使用 MD5 对于密码散列,但我在很多地方都读到过,这样做不是一个好习惯。

我应该带什么?

  • 使用
  • 或者我应该使用 bcrypt

  • 另外,如果 bcrypt 是推荐的,那么如何与 Code Igniter 一起使用呢?

    编辑

    我已将这些文件放在 application/libraries
  • PasswordHash.php
  • c/Makefile
  • c/crypt_private.c

  • 在我的 Controller 中,我正在使用此代码 -
    $params = array(
    'phpass_hash_strength' => 8,
    'phpass_hash_portable' => FALSE
    );
    $this->load->library('PasswordHash', $params);
    $password = $this->passwordhash->HashPassword($pwd);

    我收到这些错误 -
    A PHP Error was encountered

    Severity: Notice

    Message: Uninitialized string offset: 3

    Filename: libraries/PasswordHash.php

    Line Number: 116
    A PHP Error was encountered

    Severity: Warning

    Message: strpos() [function.strpos]: Empty delimiter

    Filename: libraries/PasswordHash.php

    Line Number: 116

    更新

    已删除 PasswordHash.php , 使用 SimpleLoginSecure 现在。

    最佳答案

    使用 bcrypt。这个讨论出现了here在对我的回答的评论中。您可以使用诸如 phppass 之类的库。真正简化密码加密。

    关于盐的问题。使用它!否则有人可以简单地去this site并下载包含普通用户选择的绝大多数密码的彩虹表。特别是在过去几个月发生的所有安全漏洞的情况下,现在不是说你不会使用像随机盐这样简单的东西来实现的时候。

    更新

    要在 CI 中使用 PHPPass,请从上面链接的 phppass 网站下载并提取文件。将 PasswordHash.php 文件放入 CI application/libraries 目录。

    在您的代码中,您然后通过以下方式加载库:$this->load->library('PasswordHash',array(8, FALSE));
    然后散列密码就像 $this->PasswordHash->HashPassword($password); 一样简单

    稍后检查密码是否正确,就像这样简单:

    $password = $_POST['password'];
    $actualPassword = /*Get the hashed password from your db*/;

    $check = $this->PasswordHash->CheckPassword($password, $actualPassword);

    我从 http://dev.myunv.com/articles/secure-passwords-with-phpass/ 中获取了这个演示这为您提供了更多信息。我稍微修改了该教程以使用 CI 的加载程序,这就是为什么您不需要 includenew声明。

    关于codeigniter - 使用 Codeigniter 存储密码的最安全方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7044785/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com