The second option is not bcrypt. The Laravel Crypt class uses AES encryption.
As stated in the documentation :
Laravel provides strong AES encryption capabilities through the Mcrypt PHP extension.
As far as I can tell, you donβt need to decrypt the data to cancel the encryption. Therefore, you should definitely use a hash algorithm, for example sha256, in your first option. However, Laravel ships with a pretty good hash class, so why not use this.
Option 3 (Laravel Hash , Bcrypt)
$hash = Hash::make('secret'); $input = 'secret'; if(Hash::check($input, $hash)){
Note that you should use Hash::check() for comparison. You cannot just create another hash with Hash::make() and compare them. The generated hash contains a random component, so even if it has the same secret, Hash::make() will produce every hash every time.
Hashing - Laravel Docs
source share