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

使用php对navicat查看数据库密码?

navicat如何查看数据库密码?

navicat 用久了有些数据库连接密码忘记了,怎么办?

软件提供了导出链接功能:

文件----导出链接----记得勾选导出密码

打开文件,查看密码字段

需要解密使用

解密 - 使用PHP程序进行解密

<?php// Navicat 11及以前的版本
//$navicatPassword = new NavicatPassword(11);// Navicat 12及以后的版本
$navicatPassword = new NavicatPassword(12);$decode = $navicatPassword->decrypt('9F6B3EE5AE4F53AD8EA70079846F73EDE5B83C29B148BF77DFA988BCCDC3A918');
echo $decode . "\n";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);}
}

解密 - 使用PHP 在线工具进行解密

php在线运行,在线工具,在线编译IDE_w3cschool

选择你自己的Navicat版本,把代码中的密码替换为你自己connections.ncx文件中的密码,然后执行即可输出

http://www.xdnf.cn/news/14051.html

相关文章:

  • 漏洞(网络空间安全真相)
  • 开源模型应用落地-工具使用篇-从零开始搭建Qdrant Web UI-可视化管理工具-Windows(十)
  • Linux 中 “/dev/null” 有什么作用 ?
  • OpenWrt:让OpenWrt支持USB声卡
  • 从喵喵喵到泄露Prompt:提示词注入攻击全解析
  • 【面板数据】中国与世界各国新能源汽车进出口数据-分类别与不分类别(2017-2024年)
  • UE5.5构建iOS失败但没有显式错误信息的问题
  • sharepoint 共享excel,如何实现某个 sheet 别人只读,但是另一个 sheet 可以编辑
  • 临时文件夹大量0字节xml问题排查
  • 在pyCharm中创建新的conda环境
  • 北斗导航 | 基于MATLAB的卫星导航单点定位算法(卡尔曼滤波增强)
  • 人工智能时代汽车营销如何创新突破?云徙科技汽车营销智能体助力车企立足数智化转型
  • Day53 Python打卡训练营
  • Github指南-Add .gitignore和Choose a license
  • 【C#】针对System.Drawing.Bitmap的压缩
  • python从环境变量和配置文件中获取配置参数
  • C#连接SQLServer数据库异常分析处理
  • 磁盘配额管理
  • django restframework 在serializer里 通过context设置session
  • HashMap vs LinkedHashMap
  • SpringMVC 常用注解及页面跳转方式(面试)
  • vue前端项目打包和部署
  • Vue3 + TypeScript 操作第三方库(Element Plus 的 ElTable)的内部属性
  • SQL Server 修改数据库名及物理数据文件名
  • 性能测试——搭建Prometheus+Grafana平台
  • linux学习慕课版 第一章 Linux 文件与目录学习笔记
  • Nginx 配置 HTTPS 与证书格式全解析:支持后端代理验证
  • 基于云计算的振动弦分析:谐波可视化与波动方程参数理解-AI云计算数值分析和代码验证
  • 计算机视觉之三维重建(深入浅出SfM与SLAM核心算法)—— 3. 单视几何
  • 从入门到精通:C# 中 AutoMapper 的深度解析与实战应用