搜索
首页数据库navicat浅析Navicat中怎么查看已连接保存的密码

怎么查看Navicat已连接保存的数据库密码?下面本篇文章给大家介绍一下查看navicat已保存密码的方法,希望对大家有所帮助!

浅析Navicat中怎么查看已连接保存的密码

在使用Navicat 是都是习惯性的保存了密码,久而久之后 就会忘记数据库密码, 这就很不舒服了,

但是,这有个技巧,可以查看navicat 已连接保存的密码

首先去 导出连接

导出连接获取到 connections.ncx 文件

image-20200905224515544

这里记着 导出密码!!! 不然导出的文件里不包含加密的密码

image-20200905224725708

然后找到 文件里 password 字段的值

把他复制出来

image-20200905224931883

开始破译密码

多亏一位Github上的大佬写了个程序;可以直接破解这个加密密码

程序是php的;如果本地没装php也没关系 , 直接找个在线运行的工具 https://tool.lu/coderunner/

把代码粘上去就行了

然后把刚复制的 加密密码 替换倒数第二行 里的值 , 然后运行就行了

$decode = $navicatPassword->decrypt('999239DEBFA1960BCCB12566F1F417A6');

image-20200905225818289

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');
$decode = $navicatPassword->decrypt(&#39;999239DEBFA1960BCCB12566F1F417A6&#39;);
echo $decode."\n";

相关推荐:navicat教程

以上是浅析Navicat中怎么查看已连接保存的密码的详细内容。更多信息请关注PHP中文网其他相关文章!

声明
本文转载于:博客园。如有侵权,请联系admin@php.cn删除
Navicat的成本:要考虑的因素Navicat的成本:要考虑的因素Apr 14, 2025 am 12:16 AM

Navicat的成本主要受版本选择、订阅模式、数据库支持和附加功能的影响。1.个人版适合单个开发者或小型项目,价格较低。2.团队版和企业版提供更多功能,价格较高,适用于团队协作和大型企业。3.订阅模式提供持续更新和支持,但长期成本可能高于永久许可证。

Navicat是免费的吗?探索试验和定价计划Navicat是免费的吗?探索试验和定价计划Apr 13, 2025 am 12:09 AM

Navicat不是免费的,但提供14天的试用版,试用期满后需购买许可证。Navicat有多种定价计划:1.个人版适合个人开发者和小型团队;2.企业版适合大型企业;3.教育版专为教育机构设计。

选择最佳数据库管理器:Navicat以外的选项选择最佳数据库管理器:Navicat以外的选项Apr 12, 2025 am 12:01 AM

DBeaver和DataGrip是超越Navicat的数据库管理工具。1.DBeaver免费开源,适合小型项目,支持多种数据库。2.DataGrip功能强大,适用于复杂的大型项目,提供高级代码补全和SQL重构。

使用Navicat:增强数据库生产率使用Navicat:增强数据库生产率Apr 10, 2025 am 09:27 AM

Navicat通过其直观的界面和强大功能提升数据库工作效率。1)基本用法包括连接数据库、管理表和执行查询。2)高级功能如数据同步和传输通过图形界面简化操作。3)常见错误可通过检查连接和使用语法检查功能解决。4)性能优化建议使用批量操作和定期备份。

navicat怎么用替换功能navicat怎么用替换功能Apr 09, 2025 am 09:15 AM

Navicat 的替换功能允许您查找和替换数据库对象中的文本。您可以通过右键单击对象并选择“替换”来使用此功能,在弹出的对话框中输入要查找和替换的文本并配置选项,例如查找/替换范围、大小写敏感度和正则表达式。通过选择“替换”按钮,您可以查找并替换文本,并根据需要配置选项以避免意外更改。

navicat激活失败怎么办navicat激活失败怎么办Apr 09, 2025 am 09:12 AM

Navicat 激活失败的解决方法:1. 检查激活码正确性;2. 确保网络连接正常;3. 暂时禁用防病毒软件;4. 重置激活状态;5. 联系技术支持。

navicat运行sql文件错误怎么办navicat运行sql文件错误怎么办Apr 09, 2025 am 09:09 AM

要解决 Navicat 运行 SQL 文件时的错误,请遵循以下步骤:1. 检查 SQL 语法错误;2. 确保数据库连接已建立;3. 检查文件编码;4. 调整服务器设置;5. 检查临时空间;6. 禁用某些插件;7. 必要时联系 Navicat 支持。

navicat怎么建立索引navicat怎么建立索引Apr 09, 2025 am 09:06 AM

在 Navicat 中建立索引的步骤:连接到数据库。选择要建立索引的表。打开索引管理器。指定索引名称。选择索引列。选择索引类型。选择唯一索引(可选)。点击“确定”创建索引。

See all articles

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

AI Hentai Generator

AI Hentai Generator

免费生成ai无尽的。

热门文章

R.E.P.O.能量晶体解释及其做什么(黄色晶体)
3 周前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳图形设置
3 周前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.如果您听不到任何人,如何修复音频
3 周前By尊渡假赌尊渡假赌尊渡假赌
WWE 2K25:如何解锁Myrise中的所有内容
4 周前By尊渡假赌尊渡假赌尊渡假赌

热工具

SublimeText3 Linux新版

SublimeText3 Linux新版

SublimeText3 Linux最新版

SublimeText3 Mac版

SublimeText3 Mac版

神级代码编辑软件(SublimeText3)

ZendStudio 13.5.1 Mac

ZendStudio 13.5.1 Mac

功能强大的PHP集成开发环境

适用于 Eclipse 的 SAP NetWeaver 服务器适配器

适用于 Eclipse 的 SAP NetWeaver 服务器适配器

将Eclipse与SAP NetWeaver应用服务器集成。

EditPlus 中文破解版

EditPlus 中文破解版

体积小,语法高亮,不支持代码提示功能