当前位置: 首页 > news >正文

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中自己去自由发挥。

相关文章:

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

首先声明&#xff1a;这里只是作为一个记录&#xff0c;实行拿来主义&#xff0c;懒得去记录那些分析源码的过程&#xff0c;不喜勿喷&#xff0c;可直接划走。 第一步&#xff1a;创建文件夹&#xff1a;app/Helpers/Hasher; 第二步&#xff1a;创建文件&#xff1a; app/Help…...

OpenStack-train版安装之安装Keystone(认证服务)、Glance(镜像服务)、Placement

安装Keystone&#xff08;认证服务&#xff09;、Glance&#xff08;镜像服务&#xff09;、Placement 安装Keystone&#xff08;认证服务&#xff09;安装Glance&#xff08;镜像服务&#xff09;安装Placement 安装Keystone&#xff08;认证服务&#xff09; 数据库创建、创…...

【九日集训】第九天:简单递归

递归就是自己调用自己&#xff0c;例如斐波那契数列就是可以用简单递归来实现。 第一题 172. 阶乘后的零 https://leetcode.cn/problems/factorial-trailing-zeroes/description/ 这一题纯粹考数学推理能力&#xff0c;我这种菜鸡看了好久都没有懂。 大概是这样的思路&#x…...

Prime 1.0

信息收集 存活主机探测 arp-scan -l 或者利用nmap nmap -sT --min-rate 10000 192.168.217.133 -oA ./hosts 可以看到存活主机IP地址为&#xff1a;192.168.217.134 端口探测 nmap -sT -p- 192.168.217.134 -oA ./ports UDP端口探测 详细服务等信息探测 开放端口22&#x…...

Java 如何正确比较两个浮点数

看下面这段代码&#xff0c;将 d1 和 d2 两个浮点数进行比较&#xff0c;输出的结果会是什么&#xff1f; double d1 .1 * 3; double d2 .3; System.out.println(d1 d2);按照正常逻辑来看&#xff0c;d1 经过计算之后的结果应该是 0.3&#xff0c;最后打印的结果应该是 tru…...

Qt 如何操作SQLite3数据库?数据库创建和表格的增删改查?

# 前言 项目源码下载 https://gitcode.com/m0_45463480/QSQLite3/tree/main # 第一步 项目配置 平台:windows10 Qt版本:Qt 5.14.2 在.pro添加 QT += sql 需要的头文件 #include <QSqlDatabase>#include <QSqlError>#include <QSqlQuery>#include &…...

【Hadoop】分布式文件系统 HDFS

目录 一、介绍二、HDFS设计原理2.1 HDFS 架构2.2 数据复制复制的实现原理 三、HDFS的特点四、图解HDFS存储原理1. 写过程2. 读过程3. HDFS故障类型和其检测方法故障类型和其检测方法读写故障的处理DataNode 故障处理副本布局策略 一、介绍 HDFS &#xff08;Hadoop Distribute…...

【Python-随笔】使用Python实现屏幕截图

使用Python实现屏幕截图 环境配置 下载pyautogui包 pip install pyautogui -i https://pypi.tuna.tsinghua.edu.cn/simple/下载OpenCV包 pip install opencv-python -i https://pypi.tuna.tsinghua.edu.cn/simple/下载PyQT5包 pip install PyQt5 -i https://pypi.tuna.tsi…...

Sun Apr 16 00:00:00 CST 2023格式转换

Date date new Date(); log.info("当前时间为:{}",date); //yyyy-MM-dd HH:mm:ss SimpleDateFormat sdf new SimpleDateFormat(DateUtils.YYYY_MM_DD_HH_MM_SS); String dateTime s…...

使用mongodb实现简单的读写操作

本文适合初学者&#xff0c;特别是刚刚安装了mongodb数据库的朋友&#xff0c;或在atlas刚拿到免费集群的朋友。 拿到数据库&#xff0c;心情很激动&#xff0c;手痒难耐。特别想向数据库插入几条数据库试试。即使是深夜完成了安装&#xff0c;也忍不住想去完成这些操作。看到…...

C语言实现Cohen_Sutherland算法

前提简要&#xff1a; 算法简介&#xff1a; 编码算法是最早、最流行的线段裁剪算法&#xff0c;该算法采用区域检验的方法&#xff0c;能够快速有效地判断一条线段与裁剪窗口的位置关系&#xff0c;对完全接受或完全舍弃的线段无需求交&#xff0c;即可直接识别。 算法思想&…...

MySQL进阶_EXPLAIN重点字段解析

文章目录 第一节.准备1.1 版本信息1.2 准备 第二节.type2.1 system2.2 const2.3 eq_ref2.4 ref2.5 ref_or_null2.6 index_merge2.7 unique_subquery2.8 range2.9 index2.10 all 第三节. Extra3.1 No tables used3.2 No tables used3.3 Using where3.4 No matching min/max row3…...

视图层与模板层

视图层 1 视图函数 一个视图函数&#xff0c;简称视图&#xff0c;是一个简单的Python 函数&#xff0c;它接受Web请求并且返回Web响应。响应可以是一张网页的HTML内容&#xff0c;一个重定向&#xff0c;一个404错误&#xff0c;一个XML文档&#xff0c;或者一张图片. . . 是…...

MySQL数据库——触发器-案例(Insert类型、Update类型和Delete类型)

目录 表结构准备 插入数据触发器 代码 测试 修改数据触发器 代码 测试 删除数据触发器 代码 测试 通过触发器记录 tb_user 表的数据变更日志&#xff0c;将变更日志插入到日志表user_logs中&#xff0c;包含增加&#xff0c;修改&#xff0c;删除。 表结构准备 根据…...

快速创建桌面端(electron-egg)

介绍 | electron-egg electron-egg: 一个入门简单、跨平台、企业级桌面软件开发框架。 electron-egg是一个基于Electron和Egg.js的框架&#xff0c;可以用于快速构建跨平台的桌面应用程序。 1.兼容平台&#xff1a;electron-egg可以在Windows、MacOS和Linux等多个平台上运行…...

docker配置redis插件

docker配置redis插件 运行容器redis_6390 docker run -it \ --name redis_6390 \ --privileged \ -p 6390:6379 \ --network wn_docker_net \ --ip 172.18.12.19 \ --sysctl net.core.somaxconn1024 \ -e TIME_ZONE"Asia/Shanghai" -e TZ"Asia/Shanghai"…...

前端入口教程_web01

web标准 记得看&#xff01; html&#xff1a;表示整个页面 head&#xff1a; titile&#xff1a; body&#xff1a; 常用标签 1.标题标签 2.段落标签 3.换行标签 4.文本格式化标签 5. 和 标签 6.图像标签 相对路径–用来插自己本地的图片 #### 绝对路径–用来插网上找的图…...

Win7 SP1 x64 Google Chrome 字体模糊

1 打开 Google Chrome &#xff0c;地址栏输入 chrome://version/ &#xff0c;字体模糊。 2 Microsoft Update Catalog 搜索更新 kb2670838&#xff0c;下载&#xff0c;安装&#xff0c;重启电脑。 3 打开 Google Chrome&#xff0c;地址栏输入 chrome://version/ &#xff0…...

read()之后操作系统都干了什么

首先说明三个参数 file文件 buff从内存中开辟一段缓冲区用来接收读取的数据 size表示这个缓冲区的大小 有关file的参数&#xff1a; 状态&#xff1a;被打开 被关闭权限&#xff1a;可读可写最重要的是inode: 他包含了 文件的元数据(比如文件大小 文件类型 文件在访问前需要加…...

YoloV8改进策略:Swift Parameter-free Attention,无参注意力机制,超分模型的完美迁移

摘要 https://arxiv.org/pdf/2311.12770.pdf https://github.com/hongyuanyu/SPAN SPAN是一种超分网络模型。SPAN模型通过使用参数自由的注意力机制来提高SISR的性能。这种注意力机制能够增强重要信息并减少冗余,从而在图像超分辨率过程中提高图像质量。 具体来说,SPAN模…...

OpenWrt防火墙深度解析:从区域模型到多网络隔离实战

1. 项目概述&#xff1a;从“看门人”到“交通警察”如果你玩过OpenWrt&#xff0c;或者任何软路由系统&#xff0c;那你一定对“防火墙”这个词不陌生。在大多数人的第一印象里&#xff0c;它就是个“看门人”——决定哪些数据包能进&#xff0c;哪些不能进。这个理解没错&…...

给单片机新手的福利:拆解一个经典的篮球计分器项目,附Keil C代码逐行分析

51单片机篮球计分器项目深度解析&#xff1a;从状态机设计到数码管驱动实战 当你第一次拿到一个完整的单片机项目源码时&#xff0c;是否曾被那些看似复杂的函数调用和中断处理搞得一头雾水&#xff1f;本文将带你深入剖析一个经典的篮球计分器项目&#xff0c;不仅理解每行代…...

小米Tag防丢器深度解析:BLE与UWB双技术路径如何重塑寻物体验

1. 项目概述&#xff1a;小米入局&#xff0c;防丢市场迎来“鲶鱼”在智能硬件领域&#xff0c;防丢追踪器一直是个不温不火但又刚需明确的存在。苹果的AirTag凭借其庞大的Find My网络&#xff0c;几乎定义了行业标准&#xff0c;但也因其生态封闭性&#xff0c;让安卓用户望而…...

5分钟上手biliTickerBuy:开源B站会员购抢票自动化工具终极指南

5分钟上手biliTickerBuy&#xff1a;开源B站会员购抢票自动化工具终极指南 【免费下载链接】biliTickerBuy b站会员购购票辅助工具 项目地址: https://gitcode.com/GitHub_Trending/bi/biliTickerBuy biliTickerBuy是一款开源免费的B站会员购辅助工具&#xff0c;专为技…...

如何彻底释放惠普OMEN游戏本性能:终极免费硬件控制工具指南

如何彻底释放惠普OMEN游戏本性能&#xff1a;终极免费硬件控制工具指南 【免费下载链接】OmenSuperHub 使用 WMI BIOS控制性能和风扇速度&#xff0c;自动解除DB功耗限制。 项目地址: https://gitcode.com/gh_mirrors/om/OmenSuperHub 还在为惠普OMEN游戏本官方软件臃肿…...

进化智能体实战:从基因编码到种群优化的完整实现指南

1. 项目概述&#xff1a;从蓝图到智能体&#xff0c;一次开源协作的深度实践最近在开源社区里&#xff0c;一个名为planck-lab/hermes-evolving-agents-public-blueprint的项目引起了我的注意。乍一看这个标题&#xff0c;它像是一个技术蓝图或公开的设计文档&#xff0c;但深入…...

2025年Mac菜单栏革命:Ice如何重塑你的桌面工作流

2025年Mac菜单栏革命&#xff1a;Ice如何重塑你的桌面工作流 【免费下载链接】Ice Powerful menu bar manager for macOS 项目地址: https://gitcode.com/GitHub_Trending/ice/Ice 你是否曾因Mac菜单栏上的图标拥挤不堪而感到困扰&#xff1f;Wi-Fi、电池、时间等关键信…...

WindowsCleaner 终极指南:如何轻松解决C盘爆红和系统卡顿问题

WindowsCleaner 终极指南&#xff1a;如何轻松解决C盘爆红和系统卡顿问题 【免费下载链接】WindowsCleaner Windows Cleaner——专治C盘爆红及各种不服&#xff01; 项目地址: https://gitcode.com/gh_mirrors/wi/WindowsCleaner 你是否曾经遇到过这样的场景&#xff1a…...

Python异步编程与Discord机器人开发:pincer库实战指南

1. 项目概述与核心价值最近在折腾一个游戏服务器的后端&#xff0c;发现处理实时通信和状态同步这块儿&#xff0c;用传统的HTTP轮询或者WebSocket裸写&#xff0c;代码很快就变得又臭又长&#xff0c;维护起来简直是噩梦。就在我头疼的时候&#xff0c;社区里一个叫pincer的项…...

低成本PHY芯片RTL8201F驱动移植实战:从LAN8742到RTL8201F的完整替换流程与验证

低成本PHY芯片RTL8201F驱动移植实战&#xff1a;从LAN8742到RTL8201F的完整替换流程与验证 在嵌入式以太网开发中&#xff0c;PHY芯片的选择往往需要在性能和成本之间取得平衡。当项目预算有限时&#xff0c;RTL8201F这类低成本PHY芯片就成为极具吸引力的选择。本文将详细介绍如…...