目录

查看Navicat加密的数据库密码

1、打开运行窗口,输入regedit,点击确认按钮,打开注册表编辑器

2、在注册表中找到Navicat加密后的密码

3、打开PHP在线运行工具,粘贴解密代码

4. 修改倒数第三行NavicatPassword的版本值

5、更改倒数第二行decrypt()方法中的字符串为Navicat加密后的密码

6、点击执行,右侧得到解密后的密码


查看Navicat加密的数据库密码

背景:本机装的MySQL数据库密码忘记了,打开了Navicat连接过数据库,不过密码是加密的,既然能加密那就能解密,哈哈哈哈。

           解密后发现密码居然是password,好尴尬

1、打开运行窗口,输入regedit,点击确认按钮,打开注册表编辑器

2、在注册表中找到Navicat加密后的密码

  • 展开【HKEY_CURRENT_USER】
  • 展开【Software】
  • 展开【PremiumSoft】
  • 展开【NavicatPG】
  • 展开【Servers】
  • 选择 【MySQL】
  • 右侧找到 pwd,双击并复制数值数据

   

3、打开PHP在线运行工具,粘贴解密代码

  • 工具地址:https://tool.lu/coderunner
  • 复制解密代码到工具中
<?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);
$navicatPassword = new NavicatPassword(12);//解密
//$decode = $navicatPassword->decrypt('15057D7BA390');
$decode = $navicatPassword->decrypt('E75BF077AB8BAA3AC2D5');  // 替换成上一步的数据数值
echo $decode."\n";
?>

4. 修改倒数第三行NavicatPassword的版本值

5、更改倒数第二行decrypt()方法中的字符串为Navicat加密后的密码

6、点击执行,右侧得到解密后的密码

01-查看Navicat加密的数据库密码相关推荐

  1. 配置加密_数据库密码配置项都不加密?心也太大了!

    先看一份典型的配置文件 ... 省略 ... ## 配置MySQL数据库连接spring.datasource.driver-class-name=com.mysql.jdbc.Driversprin ...

  2. mysql数据库druid密码加密_Druid数据库密码加密

    背景 数据库密码直接写在配置中,对安全来说,是一个很大的挑战.Druid为此提供一种数据库密码加密的手段ConfigFilter. druid版本为1.1.18. 加密 1.项目中引入依赖 com.a ...

  3. SpringBoot使用com.alibaba.druid.filter.config.ConfigTools对数据库密码加密

    1.在本地Maven仓库中打开Powershell 2.输入命令,然后点击回车 3.将生成公钥和加密的数据库密码配置到SpringBoot项目中的yml配置文件中 参考链接

  4. navicat数据库密码忘记如何解决

    navicat数据库密码忘记如何解决 1.打开注册表 win+r 输入 regedit 2.查看加密的密码3. 访问 https://www.iatodo.com/navicatpw 进行解密

  5. 数据库密码配置项都不加密?心也太大了!

    先看一份典型的配置文件 ... 省略 ...## 配置MySQL数据库连接 spring.datasource.driver-class-name=com.mysql.jdbc.Driver spri ...

  6. druid ssh加密 java mysql_springboot 整合druid数据库密码加密功能的实现代码

    在之前给大家介绍过Springboot Druid 自定义加密数据库密码的几种方案,感兴趣的朋友可以点击查看下,今天通过本文给大家介绍springboot 整合druid数据库密码加密功能,具体内容如 ...

  7. SpringBoot配置文件敏感信息加密,springboot配置文件数据库密码加密jasypt

    使用过SpringBoot配置文件的朋友都知道,资源文件中的内容通常情况下是明文显示,安全性就比较低一些.打开application.properties或application.yml,比如mysq ...

  8. Spring配置数据库密码加密

    在项目中,为了提高安全性,需要对配置文件中的部分敏感信息进行加密,如数据库登录密码等.以下是一个简单的数据库密码加密示例,供大家一起学习交流,有不对或者需要改进的地方,请大家多多指教! 一. 未加密情 ...

  9. MYSQL数据库密码的加密方式及破解方法

    转自http://hi.baidu.com/davice_li/blog/item/5f5b470be3307e32b0351db5.html MySQL数据库用户密码跟其它数据库用户密码一样,在应用 ...

最新文章

  1. redhat配置dns服务器bind
  2. QT入门注意事项(1)
  3. 程序员编程艺术第一~十章集锦与总结(教你如何编程)--持续更新中
  4. requests下载大文件_11种方法教你用Python高效下载资源!
  5. Feature Flag 功能发布控制
  6. vc mysql 图片_VC连接MySQL
  7. 响应式开发中合理选定CSS媒体查询分割点
  8. vscode安装live server
  9. 全网最新Spring Boot2.5.1整合Activiti5.22.0企业实战教程<监听器篇>
  10. 导入已有项目到svn
  11. Nitro PDF 数据遭大规模泄露,波及微软、谷歌、苹果等
  12. Python大佬分析了15万歌词,告诉你民谣歌手们到底在唱什么
  13. mysql重复你数据标识_MySQL 处理重复数据
  14. web开发实战--弹出式富文本编辑器的实现思路和踩过的坑
  15. 雅虎前端性能优化的35条军规
  16. Android 测试技能树
  17. 电子计算机x射线断层扫描,CT——电子计算机X射线断层扫描技术.pdf
  18. html5 canvas实现高并发视频弹幕功能
  19. Linux服务器/VPS 基本测试 包括硬盘速度/网络速度
  20. restapi是什么意思_什么是REST API?请解释的通俗一点,它和一般的API有什么区别

热门文章

  1. Linux 批量修改密码
  2. 可能是全网最详细的 Python 安装教程(windows)
  3. 命令提示符(CMD)切换到指定目录的方法
  4. WPF - 简单的UI框架
  5. LeetCode50——一题学会快速幂算法
  6. RocketMq_02_消息队列及角色
  7. websocket-php
  8. 网络架构模式 B/S C/S
  9. DataGridView中某一行的某一列及当前行的选取方法(C#实现)
  10. 【matplotlib】散点图详解