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

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

图片[1]-Navicat中怎么查看已连接保存的密码-不念博客
Navicat

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

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

首先 导出连接

点击文件

选择导出连接

图片[2]-Navicat中怎么查看已连接保存的密码-不念博客
导出连接

选择需要导出的连接

自定义导出的地址

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

获取到 connections.ncx 文件

图片[3]-Navicat中怎么查看已连接保存的密码-不念博客
导出密码

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

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

然后CTRL+F查找password

将字段值进行复制

图片[4]-Navicat中怎么查看已连接保存的密码-不念博客
字段

开始破译密码

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

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

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

把代码粘上去就行了

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

$decode = $navicatPassword->decrypt('EA80CE5489DF0940973C3ED6E8D80DA0');
图片[5]-Navicat中怎么查看已连接保存的密码-不念博客
破译密码
<?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