Navicat数据库连接成功,密码忘记如何解决

这篇具有很好参考价值的文章主要介绍了Navicat数据库连接成功,密码忘记如何解决。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

文章转载自:Navicat已经成功连接,密码忘记的解决方法_铁打的阿秀的博客-CSDN博客

解决方法

目录

解决方法

一:通过注册表找到数据库连接的密码,再通过PHP解密

二.通过Navicat导出连接,找到连接密码,再通过PHP进行解密


一:通过注册表找到数据库连接的密码,再通过PHP解密

具体操作:

1.用 win + R 快捷键打开运行窗口,输入 regedit 打开注册表

navicat密码忘记了怎么办,数据库,笔记

2.在注册表地址栏输入下面内容,查找Navicat密码保存位置,回车:

计算机\HKEY_CURRENT_USER\SOFTWARE\PremiumSoft\Navicat\Servers 

navicat密码忘记了怎么办,数据库,笔记

3.在servers目录下,找到需要找回密码的连接,鼠标左键点击,右侧下拉找到名称为 pwd 的一项,该项的数据即为密码。右键,点击修改,复制数据:

navicat密码忘记了怎么办,数据库,笔记

navicat密码忘记了怎么办,数据库,笔记

navicat密码忘记了怎么办,数据库,笔记

 4.使用 https://tool.lu/coderunner/ 在线工具,对复制下来的密码15057D7BA390进行解密

5.将以下php解密代码复制到在线工具中,将复制的数据粘贴到代码的倒数第二行,点击执行,即可得到密码

PS:该工具首行不能空行,否则执行会报错;另外,在代码倒数五六行需要指定Navicat版本

<?php
namespace FatSmallTools;
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);
    }
}

use FatSmallTools\NavicatPassword;
//需要指定版本,11或12
//$navicatPassword = new NavicatPassword(12);
$navicatPassword = new NavicatPassword(11);

//解密
$decode = $navicatPassword->decrypt('15057D7BA390');
echo $decode."\n";

navicat密码忘记了怎么办,数据库,笔记

二:通过Navicat导出连接,找到连接密码,再通过PHP进行解密

具体操作:

1.打开Navicat,导航栏点击“文件”,点击“导出连接”,

navicat密码忘记了怎么办,数据库,笔记

2.选择自己需要找回密码的连接,并勾选左下角“导出密码”,点击“确定”

navicat密码忘记了怎么办,数据库,笔记

 3.打开导出的文件,找到Password这一项,将引号中的数据复制下来

navicat密码忘记了怎么办,数据库,笔记

4.打开并使用方法一步骤4.中的在线工具和代码,修改倒数第二行的内容为步骤三保存的数据833E4ABBC56C89041A9070F043641E3B,点击运行

PS:由于我使用的是Navicat 12,在这种方法中需要修改代码中倒数第五六行的版本,否则解析出来乱码

navicat密码忘记了怎么办,数据库,笔记

 文章来源地址https://www.toymoban.com/news/detail-670067.html

到了这里,关于Navicat数据库连接成功,密码忘记如何解决的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Windows修改MySQL数据库密码(修改或忘记密码)  

    今天练习远程访问数据库时,为了方便访问,就想着把数据库密码改为统一的,以后我们也会经常遇到MySQL需要修改密码的情况,比如密码太简单、忘记密码等等。在这里我就借鉴其他人的方法总结几种修改MySQL密码的方法。 我就以实际操作修改root密码为例,操作系统为win

    2024年02月09日
    浏览(46)
  • Windows修改MySQL数据库密码(修改或忘记密码)

    今天练习远程访问数据库时,为了方便访问,就想着把数据库密码改为统一的,以后我们也会经常遇到MySQL需要修改密码的情况,比如密码太简单、忘记密码等等。在这里我就借鉴其他人的方法总结几种修改MySQL密码的方法。 我就以实际操作修改root密码为例,操作系统为win

    2024年02月08日
    浏览(41)
  • 达梦数据库 忘记 SYSDBA 密码 处理方法

        DM 提供数据库身份验证模式、基于操作系统的身份验证模式、外部身份验证模式和 UKEY 身份验证模式来保护对数据库访问的安全。数据库身份验证模式需要利用数据库口令, 即在创建或修改用户时指定用户口令,用户在登录时输入对应口令进行身份验证;基于操作 系统的

    2024年01月21日
    浏览(35)
  • mysql数据库忘记密码了怎么办

    本人用的mysql8版本 看到网上很多教程,什么修改配置文件my.ini。在8版本根本没用。以下是8版本解决办法。亲测可用。 1、用管理员身份打开命令行工具。(强调:管理员身份) 2、停止mysql服务: 3、输入以下命令无密码启动mysql 4、 另开一个命令行窗口,输入mysql -u root无密

    2024年02月11日
    浏览(34)
  • 【Navicat】怎么在Navicat新建连接、新建数据库、导入数据库

    新建一个MySQL连接:打开Navicat,点击“ 左上角第一个图标 -- MySQL ”。 其他的信息都是自动出现的,只需填写 连接名和密码 后点击保存,就新建好了一个连接。 打开新建好的连接:点击“Open Connection”打开连接。 出现绿色说明打开了数据库的连接,然后单击右键。 新建数

    2023年04月27日
    浏览(67)
  • Mysql数据库--修改root密码的几种方法(忘记密码&知道密码)

    🍁 通过 alter user root identified by \\\'新密码\\\'; 🍁 通过 set password for 用户名@\\\'用户地址\\\' = \\\'新密码\\\'; 2.1.1 🎈 停止mysql服务 2.1.2 🎈 创建mysql-init-file.txt文件 2.1.3 🎈 init-file的权限(最好赋权一下) 2.1.3 🎈 使用–init-file选项启动mysql服务 2.1.4 🎈 新密码连接测试(密码:Zyl@123321)

    2024年02月08日
    浏览(49)
  • MySQL数据库忘记密码怎么办?教你一招

    文章目录 1.以管理员身份打开cmd,关闭Mysql服务 2. 跳过密码授权登录  3.再继续以管理员身份打开一个cmd窗口,进行重置密码  4.使用新密码重新登录mysql验证  5.使用Navicat可视化工具连接Mysql Mysql数据库之前安装好了,但是突然忘记当初自己设置的登录密码了,导致使用Navi

    2024年02月04日
    浏览(46)
  • 达梦数据库8用户管理以及忘记sysdba密码修改办法

    达梦数据库8用户管理 1.创建用户的语法: 创建自定义用户gin,设置密码为123456789,密码要符合密码策略(PWD_POLICY)要求,指定默认表空间为MAIN 2.锁定/解锁用户 3.修改用户的密码(同样要符合密码策略PWD_POLICY) 4.修改用户默认表空间 –尝试从MAIN表空间修改到TEST 先创建TEST的表

    2024年02月12日
    浏览(98)
  • Navicat连接Oracle数据库

    打开服务里面找到Oracle服务 OracleServerXE或者OracleServerTTL  创建数据库连接 连接名默认自己起 主机选择本地 端口默认 服务名在服务中可以找到输入后缀 用户名默认都是system 密码是创建oracle时候填写的口令 点击测试连接即可

    2024年02月04日
    浏览(45)
  • Navicat连接阿里云数据库

    前言 本文记录Navicat如何连接阿里云数据库 1、选择到阿里云下的所使用的数据库,我这里使用的是mysql。 2、使用SSH连接服务器。 3、数据库连接。 4、点击测试连接。 5、连接成功。 以上就是本次Navicat如何连接阿里云数据库的所有步骤。

    2024年02月11日
    浏览(41)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包