时间久了,当我们以前连上了navicat 之后,密码忘记了,但是依然能连接,此时我们想查看密码,应该如何操作呢?

步骤1:点击navicat 文件选项,导出连接,勾选需要导出的数据库,导出的时候一定要勾选导出密码

导出之后,我们会得到一个connections.ncx文件中找到password,然后复制出来


复制出来password内容

然后我们要对这个password 密码进行解密。打开小工具 网站:

小工具解密网站

将如下PHP代码复制进去:

<?php
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);}
};//需要指定版本两种,11或12
//$navicatPassword = new NavicatPassword(11);
//这里我指定的12的版本,原先指定的11,执行之后的密码是乱码
$navicatPassword = new NavicatPassword(12);//解密
//$decode = $navicatPassword->decrypt('15057D7BA390');
$decode = $navicatPassword->decrypt('AE137B98AB3AD0F913EBEF2E8D3C52E9');
echo $decode."\n";
?>

点击执行,右边运行得到密码。

方法2:可以使用python 代码。

navicat 加密方式

# -*- coding: utf-8 -*-from Crypto.Cipher import AES
from binascii import b2a_hex, a2b_hex# 如果text不足16位的倍数就用空格补足为16位
def add_to_16(text):if len(text.encode('utf-8')) % 16:add = 16 - (len(text.encode('utf-8')) % 16)else:add = 0text = text + ('\0' * add)return text.encode('utf-8')# 加密函数
def encrypt(text):key = 'libcckeylibcckey'.encode('utf-8')mode = AES.MODE_CBCiv = b'libcciv libcciv 'text = add_to_16(text)cryptos = AES.new(key, mode, iv)cipher_text = cryptos.encrypt(text)print(b2a_hex(cipher_text))# 因为AES加密后的字符串不一定是ascii字符集的,输出保存可能存在问题,所以这里转为16进制字符串return b2a_hex(cipher_text)# 解密后,去掉补足的空格用strip() 去掉
def decrypt(text):key = 'libcckeylibcckey'.encode('utf-8')iv = b'libcciv libcciv 'mode = AES.MODE_CBCcryptos = AES.new(key, mode, iv)plain_text = cryptos.decrypt(a2b_hex(text))return bytes.decode(plain_text).rstrip('\0').replace('','')if __name__ == '__main__':# e=encrypt('root')d = decrypt('AE137B98AB3AD0F913EBEF2E8D3C52E9')  # 解密# print("加密:",e)print("解密:", d)
解密: hzjy&flzx3qcProcess finished with exit code 0

【navicat 密码查看】小技巧navicat 如何查看密码相关推荐

  1. 电脑小技巧:怎么查看电脑网络密码

    本期教大家一个小技巧:怎么查看电脑网络密码.说到电脑网络的密码,很多小伙伴想要共享给他人又不知道密码的时候是不是只能通过路由器的ip去进行查看呢?但是还有个小技巧,下面揭晓! 第1步:首先右键电脑右下 ...

  2. 学习CAD有哪些小技巧?怎么查看CAD图纸?

    学习CAD有哪些小技巧?怎么查看CAD图纸?这些问题我想对于许多刚刚开始从事建筑,CAD之类的 小伙伴都是个不小的挑战,那么对于CAD而言,学习有什么小窍门呢?接下来就和小伙伴们分享几个CAD制图 的 ...

  3. mac os android连接wifi密码,Mac使用小技巧:找回WiFi密码

    macOS是Apple苹果Mac上运行的操作系统,它拥有大量隐藏的快捷方式,键盘命令和功能.最近小编研究了一下这个操作系统,发现了一个能够快速找到WiFi密码的小技巧,这个非常适合像小编这种经常记不住 ...

  4. 暴力破解sshd服务的密码的小技巧

    暴力破解sshd服务的密码的小技巧 准备环境   1:在虚拟机上准备一台XP系统   2:开启两台

  5. windows使用小技巧-----设置电脑免密码登录

    windows使用小技巧-----设置电脑免密码登录 前言 1.win+r打开cmd输入netplwiz打开用户账户 2.第二种方法:打开控制面板选择用户账户 3.取消勾选要使用本计算机,用户必须输入 ...

  6. 快递是否签收,分享小技巧查询物流查看已签收件

    当大量的快递单号需要查询物流,如何快速分析物流是否已签收的呢?这里给大家分享查询小技巧,批量查询物流信息并查看物流是否已签收,学会之后将大大提高工作效率,一起来试试. 第一步,运行"快递批量 ...

  7. (小技巧)Sql server查看sql语句的执行时间(转)

    转自CSDN: 在写数据库sql的时候,我们往往很关心该sql语句的执行效率,如下小技巧可以帮助程序员简单快速的得到某条或某几条sql的执行时间. declare @d datetime set @d ...

  8. 苹果手机怎么用计算机看别人密码,各种小技巧,带你玩转iPhone手机

    原标题:各种小技巧,带你玩转iPhone手机 一. 苹果手机隔空投送 首先打开手机的隔空投送功能,在相册选择图片或视频,在隔空投送栏,选择要发送的手机,然后在另外一台手机上接受就可以了.(不需要流量, ...

  9. 小技巧:systeminfo查看系统信息

    systeminfo是Windows中查看系统信息的小工具,对了解系统硬件与软件情况非常有用.可以清楚的了解到当前系统的安装日期,与当前运行时间.最近在玩游戏,装的是XP系统,Windows 7在等R ...

最新文章

  1. Jackson——来自官网的翻译
  2. Linux定时任务Crontab执行PHP脚本
  3. Dialog外部点击事件
  4. kafka0.9 java commit_kafka0.9.0及0.10.0配置属性
  5. bootstraptable 分页循环_关于bootstrap-table服务端分页问题
  6. 学习笔记-第四周-心得体会
  7. 图书推荐(持续更新)
  8. 论文浅尝 - ICLR2020 | Abductive Commonsense Reasoning
  9. php5.6 mongo 扩展,PHP5.6的安装及redis、memcache、mongo扩展
  10. HostDeny解除封禁IP
  11. archivelog模式和flashback db以及guarantee restore point之间的相互制约关系!
  12. 局域网win7计算机如何互访,局域网Win7与WinXP电脑不能互访怎么办?
  13. 腾讯QQ验证码识别dll,识别正确率95%+
  14. 排序方法基本介绍(1)
  15. 学习笔记0518----nginx和php-fpm配置
  16. libevent 使用流程
  17. 明风社软件为什么适合学生
  18. php中asp标签怎么打开新页面,A标签新窗口打开怎么设置
  19. 联想x1carbon更换电池_联想_ThinkPad|ThinkCentre|ThinkStation服务与驱动下载_常见问题...
  20. linux无法检测显示器,未检测到Ubuntu 16.04

热门文章

  1. 无需任何费用的手机GPS定位
  2. Prim之 公路村村通
  3. 第三方支付公司之快钱
  4. 【JVM】CMS简述
  5. 计算机网络设计校园大楼网络,计算机网络东区学生宿舍楼校园网规划及设计.docx...
  6. 百度产品战略的变化历程
  7. 【每日英文】2021.8.17
  8. 语音识别数据增强方法(google2019年7月论文)
  9. 笔试强训day25(数根,星际密码)
  10. office/word 2010添加页眉页脚