Bcrypt vs Hachage dans laravel
Je veux créer une fonction ou quelque chose comme un Cron qui exécute un lien (dans Laravel), avec quelque chose comme un mot de passe. J'ai deux solutions. Mais qui est le meilleur à utiliser:
Option 1 (hash):
<?php
//Page 1
$salt = "my-random-hash";
$key = hash('sha256', date('Y-m-d').$salt);
//<-- Insert go to page and send GET with $key code here
//Page 2
$salt = "my-random-hash";
$key = hash('sha256', date('Y-m-d').$salt);
if ($key == $pageOneKey) {
//Execute some code
}
Option 2 (bcrypt):
<?php
//Page 1
$key = Crypt::encrypt(date('Y-m-d'));
//<-- Insert go to page and send GET with $key code here
//Page 2
$key = date('Y-m-d');
$pageOneKey = Crypt::decrypt($key);
if ($key == $pageOneKey) {
//Execute some code
}
Ce code a été largement décrits dans. Avec mieux à l'utilisation que je veux dire safer /plus sécurisé, ou quelque chose dans cet état de transe. Merci!
Vous devez vous connecter pour publier un commentaire.
Votre deuxième option n'est pas bcrypt. Laravel est
Crypt
classe utilise le cryptage AES.Comme l'a déclaré dans la documentation:
Aussi loin que je peux dire que vous n'avez pas besoin d'être en mesure de déchiffrer les données, à l'inverse du chiffrement. Par conséquent, vous devriez certainement utiliser un algorithme de hachage comme sha256 dans votre première option. Cependant Laravel est livré avec une assez bonne hachage classe déjà alors pourquoi ne pas l'utiliser.
Option 3 (Laravel
Hash
, Bcrypt)Note que vous avez à utiliser
Hash::check()
pour la comparaison. Vous ne pouvez pas créer un autre hash avecHash::make()
et de les comparer. Le hachage généré contient une composante aléatoire, de sorte que même si c'est le même secret,Hash::make()
va produire un hachage différent à chaque fois.Hachage - Laravel docs
Hash::make
est le même quebcrypt()
?password_hash
. Vous pouvez également prendre un coup d'oeil à la source deHash::make
Si vous n'avez jamais besoin de décrypter la clé pour une utilisation ultérieure, la première option est préférable.
Si vous avez besoin pour obtenir la clé de retour après il a été chiffré, la deuxième option sera mieux.