快捷搜索:  汽车  科技

navicat的默认连接密码是什么(Navicat连接Mysql的密码是什么)

navicat的默认连接密码是什么(Navicat连接Mysql的密码是什么)然后把刚复制的 加密密码 替换倒数第二行 里的值 然后运行就行了把代码粘上去就行了把它复制出来多亏一位Github:https://github.com/tianhe1986/FatSmallTools上的大佬写了个程序;可以直接破解这个加密密码程序是php语言的;如果本地没装php也没关系(也可以弄个服务器测试) 直接找个在线运行的工具 https://tool.lu/coderunner/

在使用专业数据库软件navicat 是都是习惯性地保存了默认密码,但是久而久之后 就会忘记数据库密码,然后自己也没备份,软件上面不可以直接查看填写密码, 这就很不舒服了,

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

第一步:首先去 导出连接

导出连接获取到 connections.ncx 文件

navicat的默认连接密码是什么(Navicat连接Mysql的密码是什么)(1)

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

navicat的默认连接密码是什么(Navicat连接Mysql的密码是什么)(2)

用notepad 打开,然后找到 文件里 password 字段的值

把它复制出来

navicat的默认连接密码是什么(Navicat连接Mysql的密码是什么)(3)

第二步:开始破译密码

多亏一位Github:https://github.com/tianhe1986/FatSmallTools上的大佬写了个程序;可以直接破解这个加密密码

程序是php语言的;如果本地没装php也没关系(也可以弄个服务器测试) 直接找个在线运行的工具 https://tool.lu/coderunner/

把代码粘上去就行了

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

$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";

最后注意下:乱码

可能解码的时候遇到乱码,这时只需要修改一下指定的版本就行了

可能11版本是乱码。

navicat的默认连接密码是什么(Navicat连接Mysql的密码是什么)(4)

给他修改成12版本就正常了,具体测试看那个正常。

navicat的默认连接密码是什么(Navicat连接Mysql的密码是什么)(5)


以上是关于“Navicat连接Mysql的密码是什么”的介绍,如需测试PHP主机,推荐酷番云共享虚拟主机、免费虚拟主机,可供测试,让您快速上线网站。

猜您喜欢: