Laravel 无法更改默认加密方式?

php中文网
发布: 2016-06-06 20:26:58
原创
1685人浏览过

我想把默认的bcrypt(password)替换成md5(password+salt),在不更改vendor文件的情况下,只能自己添加一个serviceprovider替换原来的。于是我自己写了一个addsalthasher,但是却发现在make方法中无法获取$salt,有什么办法可以获取这个值吗?

<code>namespace App\Services;

use RuntimeException;
use Illuminate\Contracts\Hashing\Hasher as HasherContract;

class AddSaltHasher implements HasherContract
{

public function make($value, array $options = [])
{

    $hash = md5($value.$salt);//<-无法获取数据库中存放的salt

    if ($hash === false) {
        throw new RuntimeException('addsalt hashing not supported.');
    }

    return $hash;
}

public function check($value, $hashedValue, array $options = [])
{
    if (strlen($hashedValue) === 0) {
        return false;
    }
    $value = self::make($value);
    if($value!=$hashedValue){
        return false;
    }
    return true;
}

public function needsRehash($hashedValue, array $options = [])
{
    return false;
}

}</code>
登录后复制

回复内容:

我想把默认的bcrypt(password)替换成md5(password+salt),在不更改vendor文件的情况下,只能自己添加一个serviceprovider替换原来的。于是我自己写了一个addsalthasher,但是却发现在make方法中无法获取$salt,有什么办法可以获取这个值吗?

<code>namespace App\Services;

use RuntimeException;
use Illuminate\Contracts\Hashing\Hasher as HasherContract;

class AddSaltHasher implements HasherContract
{

public function make($value, array $options = [])
{

    $hash = md5($value.$salt);//<-无法获取数据库中存放的salt

    if ($hash === false) {
        throw new RuntimeException('addsalt hashing not supported.');
    }

    return $hash;
}

public function check($value, $hashedValue, array $options = [])
{
    if (strlen($hashedValue) === 0) {
        return false;
    }
    $value = self::make($value);
    if($value!=$hashedValue){
        return false;
    }
    return true;
}

public function needsRehash($hashedValue, array $options = [])
{
    return false;
}

}</code>
登录后复制

你自己定义一个类然后设置一个静态方法来做这件事情会更灵活,你说呢。如果要确保安全性更高,建议不要用MD5,而是用SHA-2版本。PHP的Hash扩展提供的方法(http://php.net/manual/zh/function.hash.php)可以使用SHA-2

支点微信墙程序 F2.0
支点微信墙程序 F2.0

支点微信墙F2.0推出了!在前段时间推出的F1.0的基础上,新加了微信摇一摇和启动仪式的功能。修复了微信墙无默认头像的功能,修复了微抽奖的BUG,修复了微信公众平台有时接收信息不回复的功能。(原F1.0功能介绍:现场关注主办方微信公众号,粉丝迅速涨,让大家都High起来吧!互动加粉,触手可得!微信墙文字抽奖,一墙搞定!通过微信平台,你可以实现文字讨论,更能够实现投票,对对碰,交换名片等趣味性和互动

支点微信墙程序 F2.0 0
查看详情 支点微信墙程序 F2.0
相关标签:
最佳 Windows 性能的顶级免费优化软件
最佳 Windows 性能的顶级免费优化软件

每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。

下载
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号