共計 3747 個字符,預計需要花費 10 分鐘才能閱讀完成。
這篇文章主要為大家展示了“Navicat 中如何查看已連接保存的密碼”,內容簡而易懂,條理清晰,希望能夠幫助大家解決疑惑,下面讓丸趣 TV 小編帶領大家一起研究并學習一下“Navicat 中如何查看已連接保存的密碼”這篇文章吧。
怎么查看 Navicat 已連接保存的數(shù)據(jù)庫密碼?下面本篇文章給大家介紹一下查看 navicat 已保存密碼的方法,希望對大家有所幫助!
在使用 Navicat 是都是習慣性的保存了密碼,久而久之后 就會忘記數(shù)據(jù)庫密碼,這就很不舒服了,
但是,這有個技巧,可以查看 navicat 已連接保存的密碼
首先去 導出連接
導出連接獲取到 connections.ncx 文件
這里記著 導出密碼!!!不然導出的文件里不包含加密的密碼
然后找到 文件里 password 字段的值
把他復制出來
開始破譯密碼
多虧一位 Github 上的大佬寫了個程序;可以直接破解這個加密密碼
程序是 php 的;如果本地沒裝 php 也沒關系 , 直接找個在線運行的工具 https://tool.lu/coderunner/
把代碼粘上去就行了
然后把剛復制的 加密密碼 替換倒數(shù)第二行 里的值 , 然后運行就行了
$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
以上是“Navicat 中如何查看已連接保存的密碼”這篇文章的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注丸趣 TV 行業(yè)資訊頻道!