@
xuxu @
raincious @
pein 1, 实现自己的 HasherContract 类( implements Illuminate\Contracts\Hashing\Hasher ),其中的加密解密都用自己的方式。
2 ,增加自己的 CustomHashServiceProvider ,继承自目前系统中的( extends Illuminate\Hashing\HashServiceProvider ),在其中 register 方法中将上面新建的 HasherContract 类绑定到 app()['hash'] 上($this->app->singleton('hash', function() { return new CustomHaser; }));
3 , config/app.php 中的 Illuminate\Hashing\HashServiceProvider::class 替换为 2 中新建的。
至此你的应用 auth check 过程将由你新建的 hasher 接管。
另外 bcrypt 是基于因子的加密,为的是防止未来攻击者计算能力提高,彩虹表碰撞时间越来越短,方便使用者调节加密层数,默认情况下因子设置的比较大。
你加密慢,黑客解密也慢,很难去否定 bcrypt ,就我的理解,这算是目前最完美的密码方案之一。用所谓流量大,并发高去理解加解密也很不合适,因为只有登录、注册时才会调用 bcrypt 函数,这两种行为相比日常房问简直是杯水车薪(除非你的应用每秒几十个人注册)。
缺点:
1.中文资料严重不足,搜个错误提示都搜不到,必须各种翻墙
2.手册可读性差,或者说严重不符合国人的习惯
3.搭建过程繁琐
4.composer 不给力
5.packagist 上的 vendor 容易涉及版权问题(一旦涉及就被下架,然后再也找不到了,例如 Excel )
6.自己扩展着实不意
7.代码可读性非常的差,层级过多(是太 TM 的多了)
8.无法方面的支持 soa
9.模板引擎太过于强大,未定义参数全报错
10.自定义配置较差
优点:
1.ORM 模型,连 TP 都来仿了
2.模板引擎很强大,用惯了 Smarty ,再用 blade ,感觉有点诡异
总结:
1.都说 laravel 强大性能高,真心没觉得,没基础的小白看手册都看不懂,有经验的又觉得其灵活性较差、排查 BUG 困难。
2.以我目前看来: laravel 适合做单个项目(例如:一个 cms 系统、图片系统、中小 ERP ),并不太适合移动互联网的高并发应用。(可能是我错了)