Laravel修改默认的auth模块为md5(password+salt)验证

首先声明:这里只是作为一个记录,实行拿来主义,懒得去记录那些分析源码的过程,不喜勿喷,可直接划走。
第一步:创建文件夹:app/Helpers/Hasher;
第二步:创建文件:
app/Helpers/Hasher/MD5Hash.php; app/Providers/MD5HashServiceProvider.php
第三步:修改文件:
1.MD5Hash.php:

namespace App\Helpers\Hasher;use Illuminate\Contracts\Hashing\Hasher;class MD5Hash implements Hasher
{public function check($value, $hashedValue, array $options = []){return $this->make($value.$hashedValue['salt']) == $hashedValue['password'];}public function needsRehash($hashedValue, array $options = []){return false;}public function make($value, array $options = []){return md5($value);}/*** @param string $hashedValue* @return array*/public function info($hashedValue){// TODO: Implement info() method.}
}

说明:check方法中的$hashvalue主要是根据自己的App/User.php中的getAuthPassword方法返回的内容。构造加密算法的主要是在make方法中实现。
2.MD5HashServiceProvider.php:

<?phpnamespace App\Providers;use Illuminate\Support\ServiceProvider;
use App\Helpers\Hasher\MD5Hash;class MD5HashServiceProvider extends ServiceProvider
{/*** Register services.** @return void*/public function register(){//}/*** Bootstrap services.** @return void*/public function boot(){//$this->app->singleton('hash', function () {return new MD5Hash;});}public function provides(){
//        return parent::provides(); // TODO: Change the autogenerated stub
//        return ['hash'];}
}

说明:这个文件照搬就可以
3.app/User.php:

<?phpnamespace App;use Illuminate\Contracts\Auth\MustVerifyEmail;
use Illuminate\Foundation\Auth\User as Authenticatable;
use Illuminate\Notifications\Notifiable;class User extends Authenticatable
{use Notifiable;/*** The attributes that are mass assignable.** @var array*/protected $fillable = ['username', 'email', 'password',];/*** The attributes that should be hidden for arrays.** @var array*/protected $hidden = ['password', 'remember_token',];/*** The attributes that should be cast to native types.** @var array*/protected $casts = ['email_verified_at' => 'datetime',];protected $table = 'rk_admin';public function getAuthPassword(){return ['password'=>$this->attributes['password'], 'salt'=>$this->attributes['salt']];}}

说明:这里的getAuthPassword方法是返回需要的字段。需要添加自己的admin表。
4.config/app.php

//        Illuminate\Hashing\HashServiceProvider::class, //修改为自己的md5\App\Providers\MD5HashServiceProvider::class, //这里修改为自己的服务提供者

同理,其他类型的加密算法可以在md5hash.php中自己去自由发挥。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/187391.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

人工智能三要素:算法、算力、算据(数据)

算力属于拼财力 算法属于拼能力 算据分两种&#xff1a; 存量算据&#xff1a;互联网已经产生的&#xff0c;但是斑驳纷杂&#xff0c;从算法原理上讲&#xff0c;难以找到需要注意的数据。 原生数据&#xff1a;由ai直接产生&#xff0c;或者和人类&#xff0c;和其他事物…

【机器学习】线性模型之逻辑回归

文章目录 逻辑回归Sigmoid 函数概率输出结果预测值与真实标签之间的并不匹配交叉熵逻辑回归模型 梯度下降逻辑回归模型求解编程求解sklearn 实现&#xff0c;并查看拟合指标 逻辑回归 逻辑回归是一种广义线性模型&#xff0c;形式上引入了 S i g m o i d Sigmoid Sigmoid 函数…

Windows10中在Visual Studio2017中VC++项目安装使用GoogleTest库

Windows10中在Visual Studio2017中VC项目安装使用GoogleTest库 在Windows10中VC程序中可以不用自己手动下载GoogleTest源代码&#xff0c;可以直接通过【项目】-> 【管理 NuGet 程序包】-> 【浏览】-> 搜索 googletest&#xff0c; 找到Microsoft.googletest.v140.wi…

物联网实训室虚拟仿真软件建设方案

一、概述 物联网实训室虚拟仿真软件旨在紧密围绕立德树人的根本任务&#xff0c;充分依托先进的数字技术&#xff0c;并对接物联网行业的发展趋势和人才需求。通过对比真实企业工作环境&#xff0c;融合创新创业教育基因&#xff0c;秉承虚拟仿真技术与教育教学深度融合的理念&…

流批一体历史背景及基础介绍

目录 一、历史背景1.BI系统2.传统大数据架构3.流式架构4.Lambda架构5.Kappa架构 二、流批一体与数据架构的关系数据分析型应用数据管道型应用 三、流与批的桥梁Dataflow模型四、Dataflow模型的本质一个基本点两个时间域三个子模型1.窗口模型2.触发器模型3. 增量计算模型 四个分…

Netty Review - 探索Pipeline的Inbound和Outbound

文章目录 概念Server CodeClient CodeInboundHandler和OutboundHandler的执行顺序在InboundHandler中不触发fire方法InboundHandler和OutboundHandler的执行顺序如果把OutboundHandler放在InboundHandler的后面&#xff0c;OutboundHandler会执行吗 概念 我们知道当boss线程监控…

boa服务器移植

BOA是一种非常小巧的web服务器&#xff0c;用来负责处理客户端或者是浏览器端的http请求&#xff0c;因为其特性小巧&#xff0c;性能优秀&#xff0c;故而适合应用于嵌入式系统。 1、 下载代码&#xff1a;http://www.boa.org/ 这里选择0.94.14rc21的作为演示。 2、进入src …

centos安装jstack,jcmd,jps等工具

在一个新节点上面安装了一个jvm服务&#xff0c;需要查询进程相关信息&#xff0c;输入jps会提示命令不存在&#xff0c;如果我们已经安装了jdk&#xff0c;内置了这些命令&#xff0c;我们需要查询一下并将它们进行安装。 [rootxxx /data/app/webroot]# jps -bash: jps: comm…

Neurocomputing----Guide for authors

该期刊鼓励并使您能够在适当的情况下共享支持您的研究出版物的软件&#xff0c;并使您能够将软件和数据与您发表的文章相互链接。您可以选择将您的开源软件转换为其他期刊出版物软件影响&#xff0c;这是一本多学科的开放获取期刊&#xff0c;为用于解决研究挑战的软件提供学术…

自学MySql(一)

1.安装下载 下载网址 2、将mysql的bin目录添加到环境变量&#xff08;可选&#xff09; 3、使用一下命令测试

GAN:WGAN前作

WGAN前作&#xff1a;有原则的方法来训练GANs 论文&#xff1a;https://arxiv.org/abs/1701.04862 发表&#xff1a;ICLR 2017 本文是wgan三部曲的第一部。文中并没有引入新的算法&#xff0c;而是标是朝着完全理解生成对抗网络的训练动态过程迈进理论性的一步。 文中基本是…

【洛谷 B2028】反向输出一个三位数 题解(顺序结构+取余)

反向输出一个三位数 题目描述 将一个三位数反向输出&#xff0c;例如输入 358 358 358&#xff0c;反向输出 853 853 853。 输入格式 一个三位数 n n n。 输出格式 反向输出 n n n。 样例 #1 样例输入 #1 100样例输出 #1 001样例 #2 样例输入 #2 001样例输出 #…

05 Ceres

文章目录 05 Ceres5.0 仿函数5.1 Ceres 简介5.2 代码示例 05 Ceres 5.0 仿函数 简单来说&#xff0c;仿函数就是重载了 () 操作符的类&#xff0c;可以实现类似函数调用的过程&#xff0c;所以叫做仿函数。 struct MyPlus {int operator()(const int &a , const int &am…

文心一言 VS 讯飞星火 VS chatgpt (146)-- 算法导论12.2 1题

一、用go语言&#xff0c;假设一棵二叉搜索树中的结点在1到 1000 之间&#xff0c;现在想要查找数值为 363 的结点。下面序列中哪个不是查找过的序列? a.2&#xff0c;252&#xff0c;401&#xff0c;398&#xff0c;330&#xff0c;344&#xff0c;397&#xff0c;363。 b.9…

ps 透明印章制作

ps 透明印章制作 1、打开不透明印章2、抠出红色印章3、新建图层4、填充红色印章到新图层5、导出透明印章 1、打开不透明印章 打开ps软件&#xff0c;菜单栏选择 文件-打开 选择本地不透明印章 打开 2、抠出红色印章 ps菜单栏 选择 选择-色彩范围 点击色彩范围 色彩范围窗口 取…

内网协议区别

今天面试的时候被面试官问到内网隧道技术中的协议有什么区别&#xff0c;平时只注重使用不注重原理&#xff0c;学习记录 2023-11-30 网络层&#xff1a;IPV6 隧道、ICMP 隧道、GRE 隧道 传输层&#xff1a;TCP 隧道、UDP 隧道、常规端口转发 应用层&#xff1a;SSH 隧道、HTTP…

基于B/S架构的医院一体化电子病历编辑器源码

电子病历在线制作、管理和使用的一体化电子病历解决方案&#xff0c;通过一体化的设计&#xff0c;提供对住院病人的电子病历书写、保存、修改、打印等功能。电子病历系统将临床医护需要的诊疗资料以符合临床思维的方法展示。建立以病人为中心&#xff0c;以临床诊疗信息为主线…

使用 SDKMAN 管理多版本本地 Java 环境---Centos8 Windows

文章目录 windows 安装centos8 安装卸载sdkman使用 windows 安装 SDKMAN是一个 jdk 多版本管理工具&#xff0c;类似于 nodejs 中的 nvm。可以在本地存在多个 java 环境&#xff0c;快速切换功能&#xff0c;同时&#xff0c;他不止于 java sdk&#xff0c;还有maven、tomcat等…

算法:双指针

数组分块 题型特点&#xff1a;给一个数组&#xff0c;在某个规则下将数组划分成几个区间 解决&#xff1a;双指针&#xff08;数组中利用下标充当指针&#xff09; 283 移动0 定义两个指针 dest指针&#xff08;已处理区间内非0元素的最后一个位置&#xff09;cur指针&#…

Memcached最新2023年面试题,高级面试题及附答案解析

文章目录 01、Memcached是什么&#xff0c;有什么作用&#xff1f;02、Memcached的多线程是什么&#xff1f;如何使用它们&#xff1f;03、Memcached与Redis的区别&#xff1f;04、如果缓存数据在导出导入之间过期了&#xff0c;怎么处理这些数据呢&#xff1f;05、如何实现集群…