navicat连接mysql数据库密码忘记了快速找回

news2024/10/6 18:20:50

本机环境:

 mac 12.2.1 mysql8.0.3

问题:

连接navicat时,报错Access denied for user ‘root‘@‘localhost‘ (using password: YES)

解决:

1.在navicat中导出xxx.ncx文件

勾选Export Password,选择要输出的文件目录(输出文件格式为xxx.ncx)

2.在xxx.ncx文件中查找对应连接的密码

打开文件后搜索Password=,

3.戳这里快速执行下面的代码

用下面大佬的这段代码解析一下就找回来了,日常被自己蠢哭

<?php
 
namespace FatSmallTools;
 
class NavicatPassword
{
    protected $version = 0;
    protected $aesKey = 'libcckeylibcckey';
    protected $aesIv = 'libcciv libcciv ';
    protected $blowString = '3DC5CA39';
    protected $blowKey = null;
    protected $blowIv = null;
    
    public function __construct($version = 12)
    {
        $this->version = $version;
        $this->blowKey = sha1('3DC5CA39', true);
        $this->blowIv = hex2bin('d9c7c3c8870d64bd');
    }
    
    public function encrypt($string)
    {
        $result = FALSE;
        switch ($this->version) {
            case 11:
                $result = $this->encryptEleven($string);
                break;
            case 12:
                $result = $this->encryptTwelve($string);
                break;
            default:
                break;
        }
        
        return $result;
    }
    
    protected function encryptEleven($string)
    {
        $round = intval(floor(strlen($string) / 8));
        $leftLength = strlen($string) % 8;
        $result = '';
        $currentVector = $this->blowIv;
        
        for ($i = 0; $i < $round; $i++) {
            $temp = $this->encryptBlock($this->xorBytes(substr($string, 8 * $i, 8), $currentVector));
            $currentVector = $this->xorBytes($currentVector, $temp);
            $result .= $temp;
        }
        
        if ($leftLength) {
            $currentVector = $this->encryptBlock($currentVector);
            $result .= $this->xorBytes(substr($string, 8 * $i, $leftLength), $currentVector);
        }
        
        return strtoupper(bin2hex($result));
    }
    
    protected function encryptBlock($block)
    {
        return openssl_encrypt($block, 'BF-ECB', $this->blowKey, OPENSSL_RAW_DATA|OPENSSL_NO_PADDING); 
    }
    
    protected function decryptBlock($block)
    {
        return openssl_decrypt($block, 'BF-ECB', $this->blowKey, OPENSSL_RAW_DATA|OPENSSL_NO_PADDING); 
    }
    
    protected function xorBytes($str1, $str2)
    {
        $result = '';
        for ($i = 0; $i < strlen($str1); $i++) {
            $result .= chr(ord($str1[$i]) ^ ord($str2[$i]));
        }
        
        return $result;
    }
    
    protected function encryptTwelve($string)
    {
        $result = openssl_encrypt($string, 'AES-128-CBC', $this->aesKey, OPENSSL_RAW_DATA, $this->aesIv);
        return strtoupper(bin2hex($result));
    }
    
    public function decrypt($string)
    {
        $result = FALSE;
        switch ($this->version) {
            case 11:
                $result = $this->decryptEleven($string);
                break;
            case 12:
                $result = $this->decryptTwelve($string);
                break;
            default:
                break;
        }
        
        return $result;
    }
    
    protected function decryptEleven($upperString)
    {
        $string = hex2bin(strtolower($upperString));
        
        $round = intval(floor(strlen($string) / 8));
        $leftLength = strlen($string) % 8;
        $result = '';
        $currentVector = $this->blowIv;
        
        for ($i = 0; $i < $round; $i++) {
            $encryptedBlock = substr($string, 8 * $i, 8);
            $temp = $this->xorBytes($this->decryptBlock($encryptedBlock), $currentVector);
            $currentVector = $this->xorBytes($currentVector, $encryptedBlock);
            $result .= $temp;
        }
        
        if ($leftLength) {
            $currentVector = $this->encryptBlock($currentVector);
            $result .= $this->xorBytes(substr($string, 8 * $i, $leftLength), $currentVector);
        }
        
        return $result;
    }
    
    protected function decryptTwelve($upperString)
    {
        $string = hex2bin(strtolower($upperString));
        return openssl_decrypt($string, 'AES-128-CBC', $this->aesKey, OPENSSL_RAW_DATA, $this->aesIv);
    }
}
 
 
use FatSmallTools\NavicatPassword;
 
//需要指定版本,11或12
$navicatPassword = new NavicatPassword(12);
//$navicatPassword = new NavicatPassword(11);
 
//解密
$decode = $navicatPassword->decrypt('5E1D8565C84BD1293386888C599F8334'); //在这里填入你在cnx文件里复制的加密密码
echo $decode."\n";

参考:

忘记数据库密码怎么办_bilibili

​​​​​​​​​​​​​​代码在线运行 - 在线工具

查看Navicat已保存数据库密码​​​​​​​
navicat中的密码忘记了,解密navicat导出的密码_三七有脾气的博客-CSDN博客

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

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

相关文章

nvidia-smi 参数详解

nvidia-smi 参数详解 参数详情GPU本机中的GPU编号&#xff0c;有多块显卡的时候从0开始&#xff0c;图中的GPU编号为0Fan风扇转速&#xff0c;N/A表示没有风扇NameGPU类型&#xff0c;图中GPU为NVIDIA GeForce GTX 1050TiTempGPU温度PerfGPU性能状态&#xff0c;从P0(最大性能)…

视频怎么转化为mp3,5种高效方法任选

视频怎么转化为mp3呢&#xff1f;想必这是我们工作过程中经常遇见的问题。众所周知&#xff0c;MP3格式是一种常见的音频格式&#xff0c;支持多种音频播放器和设备。通过将视频转换为MP3格式&#xff0c;用户可以方便地将视频的音频部分提取出来&#xff0c;保存为与视频大小不…

ChatGPT Plugin已正式上线 - 如何优先使用?

写在前面&#xff1a;博主是一只经过实战开发历练后投身培训事业的“小山猪”&#xff0c;昵称取自动画片《狮子王》中的“彭彭”&#xff0c;总是以乐观、积极的心态对待周边的事物。本人的技术路线从Java全栈工程师一路奔向大数据开发、数据挖掘领域&#xff0c;如今终有小成…

KDE Frameworks 5.106改进了Breeze图标、Plasma浏览器集成等功能

导读KDE项目今天发布了KDE Frameworks 5.106&#xff0c;作为KDE Frameworks 5的另一个月度更新&#xff0c;该集合有80多个Qt的附加库&#xff0c;为KDE Plasma桌面环境和KDE Gear软件套件提供通用功能。 主要的KDE Frameworks 6系列的工作仍在继续&#xff0c;但这并不意味着…

指数加权平均值滤波Exponential Weighting Method(博途SCL功能块)

在了解指数加权均值滤波算法之前大家可以熟悉下滑动平均值滤波(Lamuda=1.0时,指数加权滤波和滑动平均值滤波算法一模一样),滑动平均值滤波算法的详细介绍,请参看下面文章博客,这里不再赘述。 博途PLC各种平均值滤波算法对比(SCL+梯形图代码)_博途数字滤波梯形图_RXXW_…

如何在金融行业运用IPD?

随着经济体制和金融体制朝市场化方向的不断发展&#xff0c;我国金融市场建设取得了突破性进展。我国金融机构规模不断扩大&#xff0c;不仅种类非常齐全&#xff0c;市场参与主体日趋广泛&#xff0c;极大地满足了人们日益增长的金融需求。基本形成了初具规模、分工明确的市场…

Word如何设置页码?3个简单方法快速设置!

案例&#xff1a;Word如何设置页码 【在使用word文档时&#xff0c;由于页数太多了&#xff0c;想给文档设置页码&#xff0c;但是不知道该如何设置&#xff1f;请大家帮帮我&#xff01;】 对于经常使用word进行办公的朋友来说&#xff0c;设置页码应该是个比较常见的需求了…

电脑怎么截图?常见的4种截图方法分享!

案例&#xff1a;有人知道在电脑上怎么截图&#xff1f; 【有时候&#xff0c;用截图表达事情会更加清楚&#xff0c;但是我只会手机截图&#xff0c;不知道在电脑上怎么截图。有没有小伙伴知道电脑怎么截图&#xff1f;】 在日常使用电脑时&#xff0c;我们经常需要截图来记…

git关于本地仓库、版本库、工作区、暂存区、远程仓库、分支

项目开发git版本管控目录大致如下&#xff1a; 1、.git 文件夹 详细内容参考博文&#xff1a;.git文件夹详解 .git文件夹详解 - 程序员大本营 用来管理git仓库的文件夹&#xff0c;里面内容较多&#xff0c;包括暂存区和本地库都在文件夹中&#xff1b; 创建方式&#xff1a;…

四信5G RedCap产品发布,加速行业迈向5G“轻时代”

RedCap(Reduced Capability)即缩减能力&#xff0c;属于轻量化5G的重要组成部分&#xff0c;也是蜂窝物联网的重要演进方向&#xff0c;RedCap自诞生以来备受产业关注&#xff0c;为5G设备带来更低成本、更低功耗、更小型化的应用前景&#xff0c;进一步提升5G应用于垂直行业市…

电脑黑屏重装系统需要注意的事项

电脑黑屏是一个常见的问题&#xff0c;可能由多种原因引起。本文将为你提供解决方案&#xff0c;教你如何在电脑黑屏的情况下重装系统&#xff0c;让你的电脑恢复正常运行。 工具/原料&#xff1a; 系统版本&#xff1a;win7旗舰版 品牌型号&#xff1a;宏碁非凡S3X 软件版本&…

Rust 笔记:开发环境搭建与 rust 工具介绍

Rust 笔记 开发环境搭建与 rust 工具介绍 作者&#xff1a;李俊才 &#xff08;jcLee95&#xff09;&#xff1a;https://blog.csdn.net/qq_28550263?spm1001.2101.3001.5343 邮箱 &#xff1a;291148484163.com 本文地址&#xff1a;https://blog.csdn.net/qq_28550263/artic…

ArcMap:如何渲染一幅精美的地形图

目录 01 python渲染地形图 1.1 代码展示 1.2 重点讲一下阴影和光源的设置。 1.3 如何使用阴影进行进行渲染&#xff1f; 02 ArcMapArcSence渲染地形图 2.1 山地阴影的制作 2.2 基本高度和偏移 2.3 图层叠加和透明度等参数的设置 2.4 渲染的设置 2.5 其它设置 尝…

Linux利器tmux使用教程总览

文章目录 为什么是tmuxtmux的安装在Ubuntu和Debian上安装Tmux在CentOS和Fedora上安装Tmux在macOS上安装Tmux tmux的基本术语tmux的基本操作使用场景 tmux 是一个终端复用器&#xff08;terminal multiplexer&#xff09;&#xff0c;非常有用&#xff0c;属于常用的开发工具。本…

CAN波形分析

第一章 CAN基础 CAN波形分析 示波器表笔正连CANH,负极连CANL得到的波形为&#xff1a; CANH和CANL经过MCP2551或者MCP2515转换之后&#xff0c;示波器正极连CRX&#xff0c;负极接地波形为 二进制表示并解析为 上图第二排红色表示的数字为每隔5个相同的数字要用奇异值隔开&…

性能测评:腾讯云轻量应用服务器CPU内存带宽系统盘

腾讯云轻量应用服务器性能如何&#xff1f;CPU型号主频、内存、公网带宽和系统盘存储多维对比&#xff0c;轻量应用服务器会不会比云服务器CVM性能差&#xff1f;相对于CVM云服务器轻量服务器更适合轻量级的应用&#xff0c;轻量服务适合中小企或个人开发者用于搭建We网站应用、…

【K8s】什么是Pod?Pod的调度与控制器

文章目录 一、Pod介绍1、Pod结构2、Pod的定义 二、Pod配置&#xff1a;spec.containers1、基本配置 name和image2、镜像拉取策略 imagePullpolicy3、启动命令 command4、环境变量 env5、端口设置 ports6、资源配额 resources 三、Pod的生命周期1、创建和终止2、初始化容器3、钩…

关于选择法拍房的五点建议

一边是不断上升的成交量和不断刷新的成交额&#xff0c;另一边是买了房无法入住和面临的一大笔税费&#xff0c;关于“法拍房”&#xff0c;其热度和问题并存交织。然而这一切对于一些有着结婚、孩子入学、养老、改善等购房需求的刚需者来说&#xff0c;丝毫没有影响......因为…

linux系统SSL证书部署https单/多站点

以下教程为linux系统申请SSL证书&#xff0c;部署单/多站点https方法。如果对技术不熟悉&#xff0c;建议l联系服务商。 另需先申请下载SSL证书&#xff0c;如还没有&#xff0c;请先申请ssl证书。 一、linux系统单/多站点https部署方法&#xff08;安装默认wdcp环境&#xf…

【框架源码】SpringBoot核心源码解读之自动配置源码分析

SpringBoot流行之前&#xff0c;程序员大多是用SSM框架整合来进行WEB后端开发。这种方式非常麻烦&#xff0c;需要手动引入大量的包&#xff0c;还要配置很多XML文件&#xff0c;光是搭建环境就需要很久。 基于这种的SSM中xml配置的繁琐&#xff0c;后来衍生出SpringBoot。Spr…