navicat~导出数据库密码[通俗易懂]

navicat~导出数据库密码[通俗易懂]当我们mysql密码忘记了,而在navicat里有记录,我们应该如何导出这个密码呢? 第一步:文件菜单,导出链接,导出连接获取到 connections.ncx 文件 这里需要勾选 导出密码!!! 不

navicat~导出数据库密码

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

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

  • 第二步:找到加密密码,进行激活成功教程
    在导出的connections.ncx文件中找到password,然后复制出来

  • 打开这个网址:https://tool.lu/coderunner,输入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("复制出来的密码");
echo $decode."
";
?>  
  • 将如下刚刚密码复制进去,
    $decode = $navicatPassword->decrypt(“复制出来的密码”);
    navicat~导出数据库密码[通俗易懂]

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
转载请注明出处: https://daima100.com/5627.html

(0)
上一篇 2023-05-01
下一篇 2023-05-01

相关推荐

  • 环球易购数据平台如何做到既提速又省钱?[亲测有效]

    环球易购数据平台如何做到既提速又省钱?[亲测有效]背景简介 环球易购创建于 2007 年,致力于打造惠通全球的 B2C 跨境电商新零售生态,2014 年通过与百圆裤业并购完成上市,上市公司「跨境通(SZ002640)」是 A 股上市跨境电商第一股。经

    2023-04-27
    141
  • 使用SQL Server内存优化表 In-Memory OLTP「建议收藏」

    使用SQL Server内存优化表 In-Memory OLTP「建议收藏」如果你的系统有高并发的要求,可以尝试使用SQL Server内存优化表来提升你的系统性能。你甚至可以把它当作Redis来使用。

    2022-12-21
    157
  • Python和C++中的popen函数用于子进程输入输出管理

    Python和C++中的popen函数用于子进程输入输出管理在编写Python和C++程序时,popen函数被广泛使用来创建子进程并进行输入输出管理。

    2024-03-05
    76
  • Python优化语法:简洁高效的核心关键词

    Python优化语法:简洁高效的核心关键词对于Python工程师来说,一直以来就更加关注代码的简洁性和高效性,这也不无道理,Python以其简洁易懂的语法、高效的运行速度和强大的程序库生态圈著称。而本文就将针对Python中的几个核心关键词,分别为大家详细阐述如何优化自己的代码,更好地利用Python的特性。

    2024-02-18
    102
  • oracle任务调度_oracle 作业和调度

    oracle任务调度_oracle 作业和调度以下例子在scott用户下进行: 一、查看 先查看一下 当前用户的scheduler 的所有数据字典,看看要关注什么 SET LINE 200 PAGESIZE 2000COL TABLE_NAME

    2023-05-29
    152
  • Python中append方法的用途及使用方式

    Python中append方法的用途及使用方式在Python中,list是一种非常常用的数据类型,它可以存储任意类型的数据。Python中提供了一系列的方法来对list进行操作,其中最常用的方法之一便是append()。append()方法的作用是在list的末尾添加一个新的元素。这个新元素可以是任意类型,如整数、字符串、列表等等。如下所示:

    2023-12-20
    100
  • Python中的实数和浮点数:区别和应用

    Python中的实数和浮点数:区别和应用在数学中,实数是指包括正数、负数和0在内的所有实数,它们可以通过一个无限不循环的十进制小数来表示。而浮点数则是指带有小数点或指数的数,包括单精度浮点数和双精度浮点数。在Python中,实数可以使用int和long类型来表示,而浮点数则使用float或complex类型。

    2024-01-05
    114
  • Python不是内部或外部命令

    Python不是内部或外部命令Python是一种跨平台的高级编程语言。它的简单易学、优雅简洁的代码、丰富的库函数和大量的第三方库,使它成为众多开发者和研究者的选择。

    2024-08-25
    28

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注