首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在Laravel4.2中,每次密码散列都会产生不同的结果。

在Laravel4.2中,每次密码散列都会产生不同的结果。
EN

Stack Overflow用户
提问于 2015-06-29 07:04:54
回答 2查看 2.6K关注 0票数 2

我对密码哈希有问题。这是我的控制器

代码语言:javascript
运行
复制
 public function registerUser() {
    $valid = Validator::make(Input::all(), array(
        'pass' => 'required|min:5',
        'pass2' => 'required|same:pass'
    ));

    if($valid->fails()) {
        return Redirect::route('register')->withErrors($valid)->withInput();
    }
    // $password = Input::get('pass');
    if(Input::hasFile('photo')) {
        $img = Input::file('photo');
        if($img->isValid()) {
            echo Hash::make(Input::get('pass'));
        }else{
            return Redirect::route('register')->withInput()->with('errorimg','image-error');
        }
    }else{
        echo Hash::make(Input::get('pass'));
    }

    //return Redirect::route('register')->with('success','register-success');
}

每次我刷新浏览器时,散列的密码总是会改变的。

例:如果我把"qwerty“作为通行证,它应该会显示出来。

$2y$10$PPgHGUmdHFl.fgF39.thDe7qbLxct5sZkJCH9mHNx1yivMTq8P/zi

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-06-29 08:07:53

每次生成不同的散列都是有意的,因为散列::make()方法将生成随机盐。为了安全地保护用户的密码,必须使用随机盐。

要根据存储的哈希检查输入的密码,可以使用Hash::check()方法,它将从散列值中提取使用过的salt,并使用它生成可比较的散列。

代码语言:javascript
运行
复制
// Hash a new password for storing in the database.
// The function automatically generates a cryptographically safe salt.
$hashToStoreInDb = Hash::make($password);

// Check if the hash of the entered login password, matches the stored hash.
// The salt and the cost factor will be extracted from $existingHashFromDb.
$isPasswordCorrect = Hash::check($password, $existingHashFromDb);
票数 7
EN

Stack Overflow用户

发布于 2015-06-29 07:22:00

这是因为如果您不给一个saltbcrypt会在每次哈希时创建一个。

来源

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31109661

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档