php – Bcrypt vs Hash in laravel
发布时间:2020-12-14 19:45:03 所属栏目:大数据 来源:网络整理
导读:我想创建一个函数或类似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 $
我想创建一个函数或类似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所述:
据我所知,你不需要能够解密数据,反转加密.因此,您绝对应该在第一个选项中使用像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 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |