Navicat中怎么查看数据库密码

news2024/11/13 15:25:21

一、版本问题

场景:在配置数据库连接后,忘记了数据库的密码,想要找回来。

其实有些版本(好像是低版本才有,具体哪个版本就没去研究了)在配置连接页面,是有个选项勾选是否显示密码的,有的话就简单了。

这里主要是介绍不能直接显示密码的版本,忘记密码后,如何进行查看密码(前提是你之前配置的是正确的!)。

二、不支持直接查看密码的版本,查看密码的步骤

第一步:导出链接,导出连接获取到 connections.ncx 文件

img

这里需要勾选 导出密码!!! 不然导出的文件里不包含加密的密码

img

第二步:找到加密密码,进行破解

在导出的connections.ncx文件中找到password,然后复制出来

img

打开这个网址:https://tool.lu/coderunner,将如下刚刚密码复制进去,

$decode = $navicatPassword->decrypt(‘复制出来的密码’);

<?php
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);
    }
};
 
 
//需要指定版本两种,11或12
//$navicatPassword = new NavicatPassword(11);
//这里我指定的12的版本,原先指定的11,执行之后的密码是乱码
$navicatPassword = new NavicatPassword(12);
 
//解密
//$decode = $navicatPassword->decrypt('15057D7BA390');
$decode = $navicatPassword->decrypt('复制出来的密码');
echo $decode."\n";
?>

然后在网页上面执行代码,就可以得到密码了

img


以上转自:https://blog.csdn.net/qq_35868412/article/details/110694727


三、更新php在线网站

后面发现这个在线网站报错了,如下:

在这里插入图片描述
其实就是找个在线执行php的网站(如果你本地有的话,应该也行),就有找了一个:https://www.w3cschool.cn/tryrun/runcode?lang=php,比如下面这个就是root的密码了。

$decode = $navicatPassword->decrypt('503AA930968F877F04770B47DD731DC0');
//root

在这里插入图片描述

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

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

相关文章

Datawhale AI 夏令营(第五期) 李宏毅苹果书 Task 1 《深度学习详解(入门)》- 1.1 通过案例了解机器学习

预测本频道观看人数&#xff08;上&#xff09; - 机器学习基本概念简介_哔哩哔哩_bilibili 1 隐藏任务&#xff1a;找出本篇中形如回归&#xff08;regression&#xff09;加粗字体的术语&#xff0c;并用自己的话进行解释&#xff0c;列成表格 术语解释机器学习&#xff08;…

改VS2008 MFC项目 C语言1改字体,2颜色,3界面禁用项 CCM4202S量产SP下载工具 天津国芯

效果 1改字体 用progresss上画文字&#xff0c;并改字体及大小 要修改 DrawText 函数绘制文本的字体大小&#xff0c;你需要在绘制之前设置设备上下文的字体。这里是一个完整的示例&#xff0c;展示了如何在使用 DrawText 函数之前设置字体大小。 假设你已经有一个 HDC 设备…

85.游戏改造-修改UI分辨率,面向对象方式

免责声明&#xff1a;内容仅供学习参考&#xff0c;请合法利用知识&#xff0c;禁止进行违法犯罪活动&#xff01; 内容参考于&#xff1a;易道云信息技术研究院 上一个内容&#xff1a;84.游戏改造-窗口化下的分辨率 首先剑侠情缘这个游戏它按f9是可以隐藏ui界面的&#xf…

stm32-USB-1

1. USB简介 USB&#xff0c; 英文全称&#xff1a;Universal Serial Bus&#xff0c;即通用串行总线 USB提供适合各种应用的传输协议&#xff0c;而且协议标准向下兼容 优缺点 2. USB2.0拓扑结构 USB是一种主从结构的系统&#xff0c;数据交换只能发生在主从设备之间&#…

Jenkins配置SSH凭据

在jenkins中&#xff0c;绕不开的便是操作远程的SSH服务器&#xff0c;如向远程服务器传送文件、在远程服务器上执行脚本或者命令等&#xff0c;而这一切的前提&#xff0c;则需要配置访问远程服务器的凭据&#xff0c;常用的方式包括远程服务器的账号和密码以及密匙对等&#…

编译 ARM 平台 Qt5.12.9 源码-思维导图-学习笔记-基于正点原子阿尔法开发板

编译 ARM 平台 Qt5.12.9 源码 概述 库的后缀名 Windows平台&#xff1a;编译出的Qt库文件后缀为.dll Linux平台&#xff1a;编译出的Qt库文件后缀为.so 这些库被称为动态库&#xff0c;意味着它们在运行时被加载到应用程序中&#xff0c;而不是在编译时静态链接 库的作用 …

Linux--数据链路层(macarp)

目录 1.认识以太网 2.以太网帧格式 3.模拟一次局域网通信&#xff08;交换机&#xff09; 4.认识 MAC 地址 对比理解 MAC 地址和 IP 地址 5.认识MTU MTU 对 IP 协议的影响 MTU 对 UDP 协议的影响 MTU 对于 TCP 协议的影响 6.ARP协议 ARP 协议的作用及原理 ARP 数据报的…

【精选】基于移动端的个人博客系统的设计与实现(源码+定制+辅导)

博主介绍&#xff1a; ✌我是阿龙&#xff0c;一名专注于Java技术领域的程序员&#xff0c;全网拥有10W粉丝。作为CSDN特邀作者、博客专家、新星计划导师&#xff0c;我在计算机毕业设计开发方面积累了丰富的经验。同时&#xff0c;我也是掘金、华为云、阿里云、InfoQ等平台…

Java面试题--JVM大厂篇之JVM 大厂面试题及答案解析(2)

&#x1f496;&#x1f496;&#x1f496;亲爱的朋友们&#xff0c;热烈欢迎你们来到我的博客&#xff01;能与你们在此邂逅&#xff0c;我满心欢喜&#xff0c;深感无比荣幸。在这个瞬息万变的时代&#xff0c;我们每个人都在苦苦追寻一处能让心灵安然栖息的港湾。而我的博客&…

关于“数据完全版本记录”的系统设计

时间&#xff1a;2024年08月24日 作者&#xff1a;小蒋聊技术 邮箱&#xff1a;wei_wei10163.com 微信&#xff1a;wei_wei10 音频&#xff1a;https://xima.tv/1_Gtthca?_sonic0 希望大家帮个忙&#xff01;如果大家有工作机会&#xff0c;希望帮小蒋内推一下&#xff0c…

[运算放大器系列]四、PT100和热电偶采集电路分析

[运算放大器系列]三、PT100和热电偶采集电路分析 1. 前言2. 电路原理图3. 热电偶电路4. 三线热电阻电路 1. 前言 淘宝偶然发现一款可以支持热电阻和热电偶多种传感器的温度变送器 , 从图上看重要的芯片丝印都磨掉了。 2. 电路原理图 在其他网站上搜到两篇关于该设备的帖子 …

理解 HarmonyOS 中的网格布局:综合指南

网格布局是创建响应式和结构化用户界面的强大工具。通过将界面划分为由行和列组成的单元格&#xff0c;网格可以精确控制组件的分布和对齐。这使得它们成为各种应用程序&#xff08;例如图库、日历和计算器&#xff09;的理想选择。 在 HarmonyOS 中&#xff0c;ArkUI 提供了用…

代码随想录算法训练营day30 | 贪心算法 | 452.用最少数量的箭引爆气球、435.无重叠区间、763.划分字母区间

文章目录 452.用最少数量的箭引爆气球思路 435.无重叠区间思路 763.划分字母区间思路问题的转化 总结 今天是贪心算法专题的第四天&#xff0c;今天的三道题目&#xff0c;都算是 重叠区间 问题&#xff0c;大家可以好好感受一下。 都属于那种看起来好复杂&#xff0c; 但一看…

携手共创商业新纪元,聚贤国际成都分部正式成立

成大事者&#xff0c;聚于府都。2024年8月10日&#xff0c;在成都这个西部经济中心城市&#xff0c;聚贤国际成都分部正式成立&#xff0c;标志着聚贤国际商会在这片营商沃土落地生根。 本次成都分部成立&#xff0c;特别邀请到聚贤国际创始人刘芒芒及聚贤国际商会三亚分部、海…

ubuntu20.04源码编译安装qemu(qemu8.2)

ubuntu20.04源码安装qemu8.2 本文用于记录在ubuntu20中源码编译安装qemu8.2&#xff0c;同时也希望能够对你有所帮助。 一、download qemu 根据自己的需求下载对应版本的qemu源码压缩包。 https://github.com/qemu/qemu/tags二、build qemu 解压缩后&#xff0c;执行下述命令。…

一文读懂高通GPU驱动渲染流程

1. gpu command分析 1.1 gpu command概述 SM8650平台上&#xff0c;GLES发送给KMD&#xff08;GPU驱动&#xff09;的GPU命令有两种类型&#xff1a;同步命令和绘制命令。 绘制命令&#xff0c;一般都是一个个的drawcall组成的&#xff0c;是真正GPU程序指令&#xff0c;KMD会给…

自动分班实用工具

开学前夕&#xff0c;老师们的日程表上又添上了一笔笔的工作任务。分班&#xff0c;作为开学前的一项重要工作&#xff0c;不仅关系到学生的学习环境&#xff0c;也是家长们关注的焦点。 易查分&#xff0c;让分班变得简单 易查分小程序的出现&#xff0c;为老师们提供了一种全…

Vercel 的 AI 工具 V0.dev:如何使用它?

几个月前&#xff0c;Vercel 宣布推出了 V0.dev&#xff0c;这是一款专为开发人员和设计师设计的工具&#xff0c;能够使用 AI 生成 React 代码。最初&#xff0c;V0.dev 对外开放时采用了邀请制&#xff0c;但如今拥有 Vercel 帐户的任何人都可以访问并使用它。 这些工具填补…

计算机专业的 “铁饭碗” 终于被发现啦

计算机专业毕业后只能当码农吗&#xff1f;大错特错❌&#xff01;其实计算机专业考公真的非常有优势呢&#xff01;张雪峰就曾说过&#xff1a;“计算机在考公的时候&#xff0c;有那种 yyds 的感觉&#xff0c;是所有单位都要。”&#x1f603; &#x1f33b;计算机类专业包…