it-swarm.com.de

Wie erstelle ich ein laravel hashed Passwort

Ich versuche ein gehashtes Passwort für Laravel zu erstellen. Jetzt hat mir jemand gesagt, ich solle Laravel Hash-Helfer verwenden, aber ich kann es scheinbar nicht finden, oder ich schaue in die falsche Richtung.

Wie erstelle ich ein laravel hashed Passwort? Und wo?

Bearbeiten: Ich weiß, was der Code ist, aber ich weiß nicht, wo und wie ich ihn verwenden soll, sodass ich das gehashte Passwort zurückerhalte. Wenn ich das gehashte Passwort erhalte, kann ich es manuell in die Datenbank einfügen

70
Graham

Hashing eines Passworts mit Bcrypt in Laravel:

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

Dadurch wird ein gehashtes Passwort erstellt. Sie können es in Ihrem Controller oder sogar in einem Modell verwenden. Wenn ein Benutzer beispielsweise ein Kennwort mithilfe eines Formulars mit der Methode POST an Ihren Controller sendet, können Sie es mit der folgenden Methode hashen:

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

Hier enthält $hashed Das gehashte Passwort. Grundsätzlich tun Sie dies, wenn Sie einen neuen Benutzer erstellen/registrieren. Wenn ein Benutzer beispielsweise Details wie name, email, username und password usw. Verwenden Sie ein Formular, und bevor Sie die Daten in die Datenbank einfügen, wird das Kennwort nach der Validierung der Daten mit einem Hash versehen. Für weitere Informationen lesen Sie die Dokumentation .

Update:

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

Sie fügen also den $hashedPassword In die Datenbank ein. Hoffe, es ist jetzt klar und wenn Sie immer noch verwirrt sind, empfehle ich Ihnen, einige Tutorials zu lesen, einige Screencasts auf laracasts.com und tutsplus.com anzusehen und auch a zu lesen Buch über Laravel, dies ist ein kostenloses eBook , Sie können es herunterladen.

Update: Da OP das Passwort mit Laravel Hash ohne manuell verschlüsseln möchte Jede Klasse oder Form, daher ist dies eine alternative Möglichkeit, artisan tinker von der Eingabeaufforderung aus zu verwenden:

  1. Gehen Sie zu Ihrer Eingabeaufforderung/Terminal
  2. Navigieren Sie zur Installation Laravel (Stammverzeichnis Ihres Projekts).
  3. Verwenden Sie cd <directory name> Und drücken Sie die Eingabetaste an der Eingabeaufforderung/am Terminal
  4. Dann schreiben Sie php artisan tinker Und drücken Sie die Eingabetaste
  5. Dann schreibe echo Hash::make('somestring');
  6. Sie erhalten ein gehashtes Passwort auf der Konsole, kopieren es und tun dann, was Sie wollen.

Update (Laravel 5.x):

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

150
The Alpha

Laravel 5 verwendet bcrypt. Sie können dies also auch tun.

$hashedpassword = bcrypt('plaintextpassword');

ausgabe, die Sie im Kennwortfeld Ihrer Datenbanktabelle speichern können.

Fn Ref: bcrypt

14
Rao

Die Laravel Hash-Fassade bietet sicheres Bcrypt-Hashing zum Speichern von Benutzerkennwörtern.

Grundlegende Verwendung erfordert zwei Dinge:

Fügen Sie zuerst die Fassade in Ihre Datei ein

use Illuminate\Support\Facades\Hash;

und benutze die Make Methode um ein Passwort zu generieren.

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

und wenn Sie die Hashed-Zeichenfolge abgleichen möchten, können Sie den folgenden Code verwenden:

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

Sie können mehr mit dem Laravel Dokumentlink unten für Hashing erfahren: https://laravel.com/docs/5.5/hashing

7
Prashant Barve

Um das Passwort in der Datenbank zu speichern, machen Sie einen Hash des Passworts und speichern Sie es.

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

Um das Passwort zu bestätigen, muss das Passwort des Kontos aus der Datenbank gespeichert werden

// $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

Sie können Folgendes verwenden:

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

Weitere Informationen finden Sie hier: hier

2
Chris G

Wenn Sie verstehen möchten, wie genau laravel funktioniert, können Sie die gesamte Klasse auf Github nachlesen: https://github.com/illuminate/hashing/blob/master/BcryptHasher.php

Grundsätzlich gibt es dafür drei PHP Methoden:

$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 ));

Das gehashte Passwort ist dasselbe wie das bcrypt-Passwort von laravel 5.x. Es ist nicht erforderlich, Salz und Kosten anzugeben, sondern es werden die Standardwerte verwendet.

Diese Methoden wurden in der Klasse laravel implementiert. Weitere Informationen finden Sie in der offiziellen Dokumentation: http://php.net/manual/en/function.password-hash.php)

2
Jathin Prasad

In der BcryptHasher.php finden Sie den Hash-Code:

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;
    }

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

0

Passwort in laravel und Lumen: vergleichen

Möglicherweise funktioniert die bcrypt-Funktion mit PHP7 nicht. Dann können Sie den folgenden Code in laravel und Lumen gemäß Ihren Anforderungen verwenden:

use Illuminate\Support\Facades\Hash;

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

Ich hoffe, diese Hilfe wird dich glücklich machen :)

0
Kamlesh