Laravel Hash::check() always return false

laravel, laravel-4, php

Solution

You're using the wrong argument order. It's `Hash::check($input, $hash)`, not the other way around.

Short tinker example:

[1] > $pw = 123456;
// 123456
[2] > $hashed = Hash::make($pw);
// '$2y$10$xSugoyKv765TY8DsERJ2/.mPIOwLNdM5Iw1n3x1XNVymBlHNG4cX6'
[3] > Hash::check($hashed, $pw);
// false
[4] > Hash::check($pw, $hashed);
// true

Problem

I have profile form for user can edit own profiles. in this form I have current password. that must be match from seved into database. Form: ``` {{ Form::password('currPassword', array('id'=>'currPassword')) }} ``` i want to have this function in Controller to check this with database. ``` $data = User::find($id); if( ! Hash::check( $data->password , Input::get('currPassword') ) ) { return Redirect::to('/admin/profile') ->with('message', 'Current Password Error !') ->withInput(); } ``` hashed `123456` password into database is ok and after putting `123456` in `currPassword` that must be return `TRUE` but that return `FALSE` always.

Original source

Related problems