navicat~导出数据库密码

当我们mysql密码忘记了,而在navicat里有记录,我们应该如何导出这个密码呢?

  • 第一步:文件菜单,导出链接,导出连接获取到 connections.ncx 文件
    这里需要勾选 导出密码!!! 不然导出的文件里不包含加密的密码
    navicat~导出数据库密码
  • 第二步:找到加密密码并破解
    [En]

    step 2: find the encrypted password and crack it*

    在导出的connections.ncx文件中找到password,然后复制出来

  • 打开这个网址:https://tool.lu/coderunner,输入PHP代码
<?phpclass 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);    }};//&#x9700;&#x8981;&#x6307;&#x5B9A;&#x7248;&#x672C;&#x4E24;&#x79CD;&#xFF0C;11&#x6216;12//$navicatPassword = new NavicatPassword(11);//&#x8FD9;&#x91CC;&#x6211;&#x6307;&#x5B9A;&#x7684;12&#x7684;&#x7248;&#x672C;&#xFF0C;&#x539F;&#x5148;&#x6307;&#x5B9A;&#x7684;11&#xFF0C;&#x6267;&#x884C;&#x4E4B;&#x540E;&#x7684;&#x5BC6;&#x7801;&#x662F;&#x4E71;&#x7801;$navicatPassword = new NavicatPassword(12);//&#x89E3;&#x5BC6;$decode = $navicatPassword->decrypt('&#x590D;&#x5236;&#x51FA;&#x6765;&#x7684;&#x5BC6;&#x7801;');echo $decode."\n";?>
  • 将以下密码复制到其中
    [En]

    copy the following password into it*

    $decode = $navicatPassword->decrypt(‘复制出来的密码’);

    navicat~导出数据库密码

Original: https://www.cnblogs.com/lori/p/15686959.html
Author: 张占岭
Title: navicat~导出数据库密码

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/507958/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

  • 【转】 一条 SQL 的执行过程详解

    MySQL 体系架构 – 连接池组件 1、负责与客户端的通信,是半双工模式,这就意味着某一固定时刻只能由客户端向服务器请求或者服务器向客户端发送数据,而不能同时进行。 …

    数据库 2023年5月24日
    095
  • 一篇文章带你掌握主流基础框架——Spring

    一篇文章带你掌握主流基础框架——Spring 这篇文章中我们将会介绍Spring的框架以及本体内容,包括核心容器,注解开发,AOP以及事务等内容 那么简单说明一下Spring的必要…

    数据库 2023年6月14日
    092
  • 4. 事务和锁

    404. 抱歉,您访问的资源不存在。 可能是网址有误,或者对应的内容被删除,或者处于私有状态。 代码改变世界,联系邮箱 contact@cnblogs.com 园子的商业化努力-困…

    数据库 2023年6月16日
    088
  • 线程池执行流程图

    public ThreadPoolExecutor(int corePoolSize, int maximumPoolSize, long keepAliveTime, TimeU…

    数据库 2023年6月16日
    0117
  • Java基础三—Object对象

    Object通用方法 public final native Class<?> getClass() public native int hashCode() publ…

    数据库 2023年6月6日
    076
  • django-ckeditor配置html5video上传视频

    参考信息 为Django ckeditor配置上传视频:https://www.byincd.com/bobjiang/article-01128/ 使用 1. 手动下载插件 ht…

    数据库 2023年6月9日
    083
  • vue2框架基础

    一、什么是vue? vue是一个优秀的前端框架,他与Angular.js、React.js成为前端三大主流框架。他是一套构建用户界面的框架,只关注视图层,可以完成大型项目的开发,框…

    数据库 2023年6月14日
    082
  • MySQL实战45讲 11

    11 | 怎么给字符串字段加索引? Q:如何在邮箱这样的字段上建立合理的索引? 用户表的定义: create table SUser( ID bigint unsigned pri…

    数据库 2023年6月16日
    074
  • Java编程作业

    1、编程题 设计一个用户类User,类中的变量有用户名、密码和记录用户数量的变量,定义3个构造方法:无参的、为用户名赋值的、为用户名和密码赋值的,还有获取和设置密码的方法和返回类信…

    数据库 2023年6月11日
    074
  • Github 星标 8K+ 这款国人开源的 Redis 可视化管理工具,真香…

    做程序员就少不了与一些工具打交道,比如:监控工具、管理工具等,有些工具是命令行界面,有些工具是可视化界面,反正都是可以能够满足日常使用的功能需求。 对于redis管理工具来说,也有…

    数据库 2023年6月9日
    095
  • 初入Android——基础控件学习

    Android开发离不开控件,这篇随笔就是我自己用来记录学习Android控件知识的!!! 一、TextView TextView是Android UI 控件(文本框控件) 基础属…

    数据库 2023年6月11日
    077
  • 实战 | 线程池的几种自定义扩展

    下图为线程池的构造方法,我们可以自定义一些功能实现项目优化 1、预先启动核心线程 this.prestartAllCoreThreads();使用方式:自定义线程池的构造方法中调用…

    数据库 2023年6月6日
    083
  • H5、C3基础知识笔记

    HTML5 本文内容参考于”HTML5|W3scool”教程 简介 是最新的 HTML 标准,拥有新的语义、图形以及多媒体元素 提供了新的 API 简化了 …

    数据库 2023年6月11日
    089
  • 类加载器ClassLoader

    1.双亲委派模型 java是根据双亲委派模型的加载类的,当一个类加载器加载类时,会先尝试委托给父类加载器去加载,直到到达启动类加载器顶层若加载不了,则再让子类加载器去加载直到类成功…

    数据库 2023年6月16日
    099
  • 需求评审,测试人员应该发挥怎样的价值?两分钟让你不再懵逼

    转载请注明出处❤️ 你好,我是测试蔡坨坨。 前些日与朋友聊天,谈及需求评审,作为测试人员,我们应该在需求评审会议上做些什么? 记得第一次参加需求评审,傻傻的过去坐着,然后听别人巴拉…

    数据库 2023年6月11日
    083
  • 设计模式遵循的设计原则

    一、什么是设计原则? 答:如果说设计模式是编写代码的一种套路,那么设计原则就是用来约束我们使用这种套路应该要遵循的规则,只有遵循了这些规则的设计模式编写出来的应用程序才具有更好的扩…

    数据库 2023年6月14日
    069
亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球