我试图扩展laravel 5中的默认BCryptHashServiceProvider
,以使用SHA1加密。
使用这个问题的答案:如何在Laravel 4中使用SHA1加密而不是BCrypt?和官方留档http://laravel.com/docs/5.0/extending#container-based-extension,我设法伪造了以下代码:
应用程序内/提供商/服务提供商。php
use App\ShaHasher; use Illuminate\Hashing\HashServiceProvider; class ShaHashServiceProvider extends HashServiceProvider { public function boot() { parent::boot(); $this->app->bindShared('hash', function() { return new ShaHasher(); }); } }
应用程序内/ShaHasher。php
use Illuminate\Contracts\Hashing\Hasher as HasherContract; class ShaHasher implements HasherContract { public function make($value, array $options = array()) { $value = env('SALT', '').$value; return sha1($value); } public function check($value, $hashedValue, array $options = array()) { return $this->make($value) === $hashedValue; } public function needsRehash($hashedValue, array $options = array()) { return false; } }
在app/config/app中。php
'providers' => [ ... //'Illuminate\Hashing\HashServiceProvider', 'App\Providers\ShaHashServiceProvider', ... ],
我还使用Laravels开箱即用AuthController
来处理登录。
但它似乎并没有像我预期的那样起作用。我第一次尝试登录时,一切都很好。然后我退出了,从那以后,每次尝试登录都失败了。
我没有得到任何错误,只是“哎呀!你的输入有一些问题。这些凭据与我们的记录不匹配。"消息。
我想知道到底哪里出了问题,哪里出了问题?我希望你们中的一些天才能帮助我!
我自己解决了这个问题:-)
应用程序内/提供商/服务提供商。php我重写了错误的方法boot()
,而实际上是我应该重写的方法register()
。
use App\ShaHasher; use Illuminate\Hashing\HashServiceProvider; class ShaHashServiceProvider extends HashServiceProvider { public function register() { $this->app->singleton('hash', function() { return new ShaHasher; }); } }
问题内容: 我正在为一款游戏开发一个所谓的AAC(自动帐户创建者),它基本上是一个具有创建帐户,玩家和其他更多功能的站点。该服务器仅支持SHA1和Plain- 这是完全不安全的。我无法深入研究源代码并进行更改。如果有可以使用SHA1的信息,我将不胜感激。我刚刚阅读了BCrypt,这很棒,但是我不能真正更改源代码以适合BCrypt。我设法将SHA1这样注册: 但是我根本无法登录。我做错了吗?好像La
问题内容: 现在,我有一个PHP文件,该文件执行MYSQL查询,然后计算像这样的行: 这可以正常工作,但是我试图将所有PHP文件更改为使用PDO。那么如何用PDO做到这一点呢? 问题答案: 要么 您也可以使用它来询问数据是否存在或被选择: 或使用您的变量:
创造不息,交付不止 Introduction A quick reference guide (cheat sheet) for Laravel 5.1 LTS, listing artisan, composer, routes and other useful bits of information. We intend to build this Cheat Sheet more asse
问题内容: 我知道的指示: JPA持久性机制读取“ persistence.xml”文件,查找名为“ persistence-unit- name”的持久性单元,并基于该持久性单元构造EntityManagerFactory。 我的问题是,如何强制JPA 使用不同于“ persistence.xml”的文件 ?例如“ persistence-test.xml”。 问题答案: 尽管单个JPA提供程序
这些散列密码的方法中,哪一种最安全,最难发现散列冲突? 仅MD5 仅SHA1 通过SHA1MD5
Laravel 5 Bundles-Modules Bundles-Modules 是一个把应用分成多个包,一个包分成若干个小模块。 这是 laravel5 框架的 bundle 包系统,每个 bundle 都 module 模块化,模块与模块之前互不影响,全新开发目录,适合团队开发,松耦合,可以抛弃自带的 APP 目录了,使用全新的开发目录结构/,使开发变得更简单。 开发目录结构: bundle