怎么查看navicat的数据库密码

步骤1:打开navicat连接数据库工具,顶部的文件栏-导出结果-勾选导出密码-导出

步骤2:导出结果使用NotePad++或文本打开,找到,数据库对应的的Password="995E66F64A15F6776""的值复制下来

<Connection ConnectionName="no" ProjectUUID="" ConnType="MYSQL" OraConnType="" ServiceProvider="Default" Host="1" Port="3306" Database="" OraServiceNameType="" TNS=""

MSSQLAuthenMode="" MSSQLAuthenWindowsDomain="" DatabaseFileName="" UserName="web_test" Password="995E66F64A15F6776

步骤3:打开在线工具,复制下面代码粘贴,修改代码倒数第二行代码:decode = navicatPassword->decrypt('995E66F64A15F6776886C4C7A0C0BF16');

步骤4:点击代码在线运行工具,运行

在线查看工具:代码在线运行 - 在线工具

一下为php 代码,复制运行,修改代码倒数第二行代码,

<?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('995E66F64A15F6776886C4C7A0C0BF16');

echo $decode."\n";

博主:navicat 如何查看已经连接了的数据库账号和密码_12992884的技术博客_51CTO博客

相关推荐
小马爱打代码3 分钟前
MySQL高可用与扩展:主从复制、读写分离、分库分表
服务器·数据库·mysql
m0_740859624 分钟前
Docker安装常见数据库命令汇总(2026)
数据库·docker·容器
j7~9 分钟前
【MYSQL】 复合查询--详解(重点)
数据库·mysql·子查询·多表查询·自链接·合并查询
睡不醒男孩0308239 分钟前
PostgreSQL 高可用怎么做?我为什么选择了 CLup
数据库·postgresql
正在走向自律10 分钟前
标量子查询消除这事儿,我琢磨了三个晚上
数据库
better_liang14 分钟前
每日Java面试场景题知识点之-数据库与缓存的一致性
java·数据库·redis·面试·分布式系统·缓存一致性·cache aside
light blue bird17 分钟前
工序路径主子表单工序组装图表组件
前端·数据库·信息可视化·.net·web端·razor page
我叫张小白。18 分钟前
基于Redis与FastAPI的分布式共享会话体系
数据库·redis·分布式·缓存·中间件·fastapi·依赖注入
java_cj21 分钟前
MySQL 8.0新特性详解:从隐藏索引到窗口函数全面解析
数据库·mysql·架构·开源
数据库安全21 分钟前
业务可用、数据可控:美创“动态脱敏+数据库透明加密“合规方案
数据库