Dee*_*ens 8 php hash bcrypt 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
}
Run Code Online (Sandbox Code Playgroud)
选项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
}
Run Code Online (Sandbox Code Playgroud)
该代码已被广泛描述.更好地使用我意味着更安全/更安全,或在那种恍惚状态.谢谢!
luk*_*ter 13
你的第二个选择不是bcrypt.Laravel的Crypt类使用AES加密.
如文档中所述:
Laravel通过Mcrypt PHP扩展提供强大的AES加密功能.
据我所知,你不需要能够解密数据,反转加密.因此,您绝对应该在第一个选项中使用像sha256这样的散列算法.然而,Laravel已经提供了一个非常好的哈希类,所以为什么不使用它.
Hash,Bcrypt)$hash = Hash::make('secret');
$input = 'secret';
if(Hash::check($input, $hash)){
// the input matches the secret
}
Run Code Online (Sandbox Code Playgroud)
请注意,您必须使用Hash::check()进行比较.你不能只用它来创建另一个哈希Hash::make()并进行比较.生成的哈希包含一个随机组件,因此即使它是相同的秘密,Hash::make()每次都会产生不同的哈希.
| 归档时间: |
|
| 查看次数: |
26175 次 |
| 最近记录: |