如何Navicat查看已保存的数据库密码

在使用专业数据库软件Navicat 是都是习惯性的保存了默认密码,但是久而久之后 就会忘记数据库密码,然后自己也没备份,软件上面不可以直接查看填写密码, 这就很不舒服了,

但是,有个小技巧,可以查看navicat 已连接保存的密码。

第一步:首先去 导出连接
导出连接获取到 connections.ncx 文件

如何Navicat查看已保存的数据库密码

这里记着 导出密码!!! 不然导出的文件里不包含加密的密码

如何Navicat查看已保存的数据库密码

用notepad++打开,然后找到 文件里 password 字段的值

把他复制出来

如何Navicat查看已保存的数据库密码

第二步:开始破译密码

多亏一位Github上的大佬写了个程序;可以直接破解这个加密密码

程序是php语言的;如果本地没装php也没关系(也可以弄个服务器测试) , 直接找个在线运行的工具 https://tool.lu/coderunner/

把代码粘上去就行了

然后把刚复制的 加密密码 替换倒数第二行 里的值 , 然后运行就行了

$decode = $navicatPassword->decrypt('999239DEBFA1960BCCB12566F1F417A6');

附带代码行

<?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('15057D7BA390');
$decode = $navicatPassword->decrypt('999239DEBFA1960BCCB12566F1F417A6');
echo $decode."\n";

最后注意下:乱码

​ 可能解码的时候遇到乱码,这时只需要修改一下指定的版本就行了

可能11版本是乱码。

如何Navicat查看已保存的数据库密码

给他修改成12版本就正常了,具体测试看那个正常。

如何Navicat查看已保存的数据库密码

以上是关于“如何Navicat查看已保存的数据库密码”的介绍,如需购买测试PHP主机,推荐酷番云共享虚拟主机、独享IP虚拟主机齐备,各类配置均有,满足不同网站建设需求;价格实惠;最低9元/月,提供免费备案。另外提供免费虚拟主机,可供测试,让您快速上线网站。

选购地址:https://www.kufanyun.com/host/

图片来源于AI模型,如侵权请联系管理员。作者:酷小编,如若转载,请注明出处:https://www.kufanyun.com/ask/1018.html

(0)
上一篇 2021年9月13日 17:03
下一篇 2021年9月15日 15:40

相关推荐

  • m3u8.41cdn m3u8为何如此流行?41cdn m3u8技术揭秘与疑问解析

    M3U8与41CDN:高效视频流传输的完美结合M3U8简介M3U8是一种用于描述多媒体播放列表的文件格式,它能够将多个视频片段组织成一个播放列表,使得用户可以流畅地观看视频内容,M3U8文件通常用于在线视频点播、直播等领域,具有格式简单、兼容性好、支持多种媒体类型等特点,41CDN介绍41CDN(中国电信CDN……

    2025年11月1日
    0890
  • hl-l8260cdn清零操作步骤详解,如何快速恢复至初始状态?

    hl-l8260cdn清零方法详解HL-L8260CDN是一款高性能的打印机,在使用过程中,可能会遇到一些故障或错误提示,如“墨盒错误”、“打印机错误”等,可以通过清零操作来恢复打印机的正常工作,以下将详细介绍HL-L8260CDN的清零方法,清零方法使用打印机菜单清零(1)打开打印机,确保打印机已连接到电脑或……

    2025年12月12日
    01240
  • 腾讯云CDN升级后网站卡顿?揭秘升级前后性能差异之谜

    随着互联网技术的飞速发展,越来越多的企业和个人开始使用腾讯云CDN服务来加速网站内容的分发,有些用户在将网站接入腾讯云CDN后,却发现网站变得更加卡顿,本文将分析可能导致这种现象的原因,并提供相应的解决方案,CDN加速原理我们来了解一下CDN的基本原理,CDN(Content Delivery Network……

    2025年12月4日
    01220
    • 服务器间歇性无响应是什么原因?如何排查解决?

      根源分析、排查逻辑与解决方案服务器间歇性无响应是IT运维中常见的复杂问题,指服务器在特定场景下(如高并发时段、特定操作触发时)出现短暂无响应、延迟或服务中断,而非持续性的宕机,这类问题对业务连续性、用户体验和系统稳定性构成直接威胁,需结合多维度因素深入排查与解决,常见原因分析:从硬件到软件的多维溯源服务器间歇性……

      2026年1月10日
      020
  • ga3530cdn感光鼓二手值得购买吗?揭秘性价比与使用风险!

    在办公自动化领域,打印机作为不可或缺的设备,其性能和稳定性直接影响到工作效率,感光鼓作为打印机核心部件之一,其质量更是至关重要,我们就来聊聊一款备受关注的感光鼓——ga3530cdn感光鼓,以及其在二手市场上的表现,ga3530cdn感光鼓简介ga3530cdn感光鼓是针对佳能(Canon)MF417dw、MF……

    2025年11月28日
    01100

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注