Navicat中怎么查看已连接保存的密码

怎么查看Navicat已连接保存的数据库密码?下面给大家介绍一下查看navicat已保存密码的方法,希望对大家有所帮助!

image-344-167
Navicat

在使用Navicat 是都是习惯性的保存了密码,久而久之后就会忘记数据库密码, 这就很不舒服了,

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

首先 导出连接

点击文件

选择导出连接

image-344-168
导出连接

选择需要导出的连接

自定义导出的地址

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

获取到 connections.ncx 文件

image-344-169
导出密码

然后找到 文件里 password 字段的值

使用记事本打开connections.ncx 文件

然后CTRL+F查找password

将字段值进行复制

image-344-170
字段

开始破译密码

多亏一位Github上的大佬写了个程序

可以直接破解这个加密密码

直接找个在线运行的工具 https://tool.lu/coderunner/

把代码粘上去就行了

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

$decode = $navicatPassword->decrypt('EA80CE5489DF0940973C3ED6E8D80DA0');

image-344-171破译密码

<?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('EA80CE5489DF0940973C3ED6E8D80DA0');echo $decode."\n";
© 版权声明
THE END
喜欢就支持一下吧
点赞11 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容