php – Bcrypt vs Hash in laravel

前端之家收集整理的这篇文章主要介绍了php – Bcrypt vs Hash in laravel前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我想创建一个函数或类似Cron的东西,它执行链接(在Laravel中),类似于密码.我有两个解决方案.但哪一个更好用:

选项1(哈希):

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

选项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
}

代码已被广泛描述.更好地使用,我的意思是更安全/更安全,或在那种恍惚状态.谢谢!

你的第二个选择不是bcrypt. Laravel的Crypt类使用AES加密.
in the documentation所述:

Laravel provides facilities for strong AES encryption via the Mcrypt PHP extension.

据我所知,你不需要能够解密数据,反转加密.因此,您绝对应该在第一个选项中使用像sha256这样的散列算法.然而,Laravel已经提供了一个相当不错的哈希类,所以为什么不使用它.

选项3(Laravel Hash,Bcrypt)

$hash = Hash::make('secret');

$input = 'secret';
if(Hash::check($input,$hash)){
    // the input matches the secret
}

请注意,您必须使用Hash :: check()进行比较.你不能只用Hash :: make()创建另一个哈希并比较它们.生成的哈希包含一个随机组件,因此即使它是相同的秘密,Hash :: make()每次都会产生不同的哈希.

Hashing – Laravel docs

猜你在找的Laravel相关文章