这篇文章主要为大家展示了“Navicat中如何查看已连接保存的密码”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“Navicat中如何查看已连接保存的密码”这篇文章吧。

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

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

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

首先去 导出连接

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

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

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

把他复制出来

开始破译密码

多亏一位Github上的大佬写了个程序;可以直接破解这个加密密码

程序是php的;如果本地没装php也没关系 , 直接找个在线运行的工具 https://tool.lu/coderunner/

把代码粘上去就行了

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

$decode=$navicatPassword->decrypt('999239DEBFA1960BCCB12566F1F417A6');

<?phpnamespaceFatSmallTools;classNavicatPassword{protected$version=0;protected$aesKey='libcckeylibcckey';protected$aesIv='libccivlibcciv';protected$blowString='3DC5CA39';protected$blowKey=null;protected$blowIv=null;publicfunction__construct($version=12){$this->version=$version;$this->blowKey=sha1('3DC5CA39',true);$this->blowIv=hex2bin('d9c7c3c8870d64bd');}publicfunctionencrypt($string){$result=FALSE;switch($this->version){case11:$result=$this->encryptEleven($string);break;case12:$result=$this->encryptTwelve($string);break;default:break;}return$result;}protectedfunctionencryptEleven($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);}returnstrtoupper(bin2hex($result));}protectedfunctionencryptBlock($block){returnopenssl_encrypt($block,'BF-ECB',$this->blowKey,OPENSSL_RAW_DATA|OPENSSL_NO_PADDING);}protectedfunctiondecryptBlock($block){returnopenssl_decrypt($block,'BF-ECB',$this->blowKey,OPENSSL_RAW_DATA|OPENSSL_NO_PADDING);}protectedfunctionxorBytes($str1,$str2){$result='';for($i=0;$i<strlen($str1);$i++){$result.=chr(ord($str1[$i])^ord($str2[$i]));}return$result;}protectedfunctionencryptTwelve($string){$result=openssl_encrypt($string,'AES-128-CBC',$this->aesKey,OPENSSL_RAW_DATA,$this->aesIv);returnstrtoupper(bin2hex($result));}publicfunctiondecrypt($string){$result=FALSE;switch($this->version){case11:$result=$this->decryptEleven($string);break;case12:$result=$this->decryptTwelve($string);break;default:break;}return$result;}protectedfunctiondecryptEleven($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;}protectedfunctiondecryptTwelve($upperString){$string=hex2bin(strtolower($upperString));returnopenssl_decrypt($string,'AES-128-CBC',$this->aesKey,OPENSSL_RAW_DATA,$this->aesIv);}}useFatSmallTools\NavicatPassword;//需要指定版本,11或12$navicatPassword=newNavicatPassword(12);//$navicatPassword=newNavicatPassword(11);//解密//$decode=$navicatPassword->decrypt('15057D7BA390');$decode=$navicatPassword->decrypt('999239DEBFA1960BCCB12566F1F417A6');echo$decode."\n";

以上是“Navicat中如何查看已连接保存的密码”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注亿速云行业资讯频道!