web-dev-qa-db-ja.com

laravelハッシュパスワードを作成する方法

Laravelのハッシュ化されたパスワードを作成しようとしています。誰かがLaravelハッシュヘルパーを使用するように言ったが、見つけられないように見えるか、間違った方向を向いている。

laravelハッシュパスワードを作成するにはどうすればよいですか?そして、どこ?

編集:コードが何であるかは知っていますが、どこでどのように使用するかわかりませんので、ハッシュ化されたパスワードを返します。ハッシュされたパスワードを取得したら、手動でデータベースに挿入できます

67
Graham

LaravelでBcryptを使用してパスワードをハッシュする:

$password = Hash::make('yourpassword');

これにより、ハッシュ化されたパスワードが作成されます。たとえば、ユーザーがフォームを使用してパスワードをPOSTメソッドを使用してコントローラーに送信する場合、コントローラーまたはモデルで使用できます。次のような方法でハッシュできます。

$password = Input::get('passwordformfield'); // password is form field
$hashed = Hash::make($password);

ここで、$hashedにはハッシュされたパスワードが含まれます。基本的に、新しいユーザーを作成/登録するときに行うので、たとえば、ユーザーがフォームを使用して、nameemailusernamepasswordなどの詳細を送信すると、データベースにデータを挿入する前に、 'データを検証した後、パスワードをハッシュします。詳細については、 ドキュメントを読む

更新:

$password = 'JohnDoe';
$hashedPassword = Hash::make($password);
echo $hashedPassword; // $2y$10$jSAr/RwmjhwioDlJErOk9OQEO7huLz9O6Iuf/udyGbHPiTNuB3Iuy

したがって、データベースに$hashedPasswordを挿入します。希望が明確になったので、まだ混乱している場合は、チュートリアルを読んで、 laracasts.com および tutsplus.com のスクリーンキャストをご覧になることをお勧めします。 Laravelの本、 これは無料の電子ブックです 、ダウンロードできます。

更新:OPはLaravel Hashを使用してクラスまたはフォームなしでパスワードを手動で暗号化するため、これはartisan tinkerを使用する代替方法ですコマンド・プロンプト:

  1. コマンドプロンプト/ターミナルに移動します
  2. Laravelインストール(プロジェクトのルートディレクトリ)に移動します
  3. cd <directory name>を使用し、コマンドプロンプト/端末からEnterキーを押します
  4. それからphp artisan tinkerを書いてEnterを押し
  5. 次に、echo Hash::make('somestring');を記述します
  6. コンソールでハッシュ化されたパスワードを取得し、それをコピーしてから、やりたいことを実行します。

更新(Laravel 5.x):

// Also one can use bcrypt
$password = bcrypt('JohnDoe');

141
The Alpha

Laravel 5はbcryptを使用します。だから、あなたもこれを行うことができます。

$hashedpassword = bcrypt('plaintextpassword');

データベーステーブルのパスワードフィールドに保存できる出力。

Fn Ref: bcrypt

14
Rao

Laravelハッシュファサードは、ユーザーパスワードを保存するための安全なBcryptハッシュを提供します。

基本的な使用には2つのことが必要です。

まず、ファイルにファサードを含めます

use Illuminate\Support\Facades\Hash;

Makeメソッドを使用してパスワードを生成します。

$hashedPassword = Hash::make($request->newPassword);

ハッシュされた文字列と一致させたい場合は、次のコードを使用できます。

Hash::check($request->newPasswordAtLogin, $hashedPassword)

以下のLaravelドキュメントリンクで詳細を確認できます: https://laravel.com/docs/5.5/hashing

5
Prashant Barve

データベースにパスワードを保存するには、パスワードのハッシュを作成して保存します。

$password = Input::get('password_from_user'); 
$hashed = Hash::make($password); // save $hashed value

パスワードを確認するには、データベースからアカウントのパスワードを保存します

// $user is database object
// $inputs is Input from user
if( \Illuminate\Support\Facades\Hash::check( $inputs['password'], $user['password']) == false) {
  // Password is not matching 
} else {
  // Password is matching 
}
4
Somnath Muluk

以下を使用できます。

$hashed_password = Hash::make('Your Unhashed Password');

より多くの情報を見つけることができます: here

2
Chris G

laravelがどのように機能するかを理解したい場合は、Githubの完全なクラスを確認できます。 https://github.com/illuminate/hashing/blob/master/BcryptHasher.php

ただし、基本的には3つのPHPメソッドが関係しています。

$pasword = 'user-password';
// To create a valid password out of laravel Try out!
$cost=10; // Default cost
$password = password_hash($pasword, PASSWORD_BCRYPT, ['cost' => $cost]);

// To validate the password you can use
$hash = '$2y$10$NhRNj6QF.Bo6ePSRsClYD.4zHFyoQr/WOdcESjIuRsluN1DvzqSHm';

if (password_verify($pasword, $hash)) {
   echo 'Password is valid!';
} else {
   echo 'Invalid password.';
}

//Finally if you have a $hash but you want to know the information about that hash. 
print_r( password_get_info( $password_hash ));

ハッシュされたパスワードは、laravel 5.x bcryptパスワードと同じです。ソルトとコストを指定する必要はありません。デフォルト値が使用されます。

これらのメソッドはlaravelクラスに実装されていますが、詳細を知りたい場合は公式ドキュメントを参照してください: http://php.net/manual/en/function.password-hash .php

2
Jathin Prasad

BcryptHasher.phpでハッシュコードを見つけることができます。

public function make($value, array $options = array())
{
    $cost = isset($options['rounds']) ? $options['rounds'] : $this->rounds;

    $hash = password_hash($value, PASSWORD_BCRYPT, array('cost' => $cost));

            $hash = password_hash($value, PASSWORD_BCRYPT, array('cost' => $cost));
            echo $value.' '.PASSWORD_BCRYPT.' '.$cost.' ';
            echo $hash;die();
    if ($hash === false)
    {
        throw new RuntimeException("Bcrypt hashing not supported.");
    }

    return $hash;
}
1
hendra1
use Illuminate\Support\Facades\Hash;
if(Hash::check($plain-text,$hashed-text))
    {
       return true;
    }
    else
    {
        return false;
    }

例:$ plain-text = 'text'; $ hashed-text = Hash :: make( 'text');

0

laravelとLumenのパスワードを比較:

これは、bcrypt関数がphp7で動作しない可能性があるため、要件に応じてlaravelおよびLumenの以下のコードを使用できます。

use Illuminate\Support\Facades\Hash;

$test = app('hash')->make("test");
if (Hash::check('test', $test)) {
   echo "matched";
} else {
   echo "no matched";
}

この助けがあなたを幸せにすることを願っています:)

0
Kamlesh