李锋镝的博客 - LiFengdi.Com

  • 首页
  • 时间轴
  • 留言
  • 左邻右舍
  • 我的日常
  • 关于我
青衿之志 履践致远
霁月光风 不萦于怀
  1. 首页
  2. 转载
  3. 其他
  4. 正文

Navicat Premium数据库账号密码解密

2021年9月14日 7160点热度 0人点赞 2条评论

如果你想破解一个已经连接好的数据库密码,可以参考这个方法。

邮件查看已经连接好的数据库属性是这样的

自动草稿
但是密码是******谁也看不懂,博主也从网站上下载过一些星星查看器之类的东西,都无济于事。

接下来就是尝试导出这些连接属性,选择文件---->导出连接,勾选想要导出的数据库,导出.ncx后缀的文件

自动草稿

打开导出后的文件,本以为就能看到数据库密码,没想到竟然加密了!!!!

自动草稿

没办法,Google it ,后来发现GitHub上一个大神写了一个PHP,可以直接破解这个密码,一切成功的开始。https://github.com/tianhe1986/FatSmallTools

本地没有安装PHP,so直接找个在线运行的工具https://tool.lu/coderunner/

粘贴代码,修改参数,一切顺利

自动草稿

<?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 FatSmallToolsNavicatPassword;

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

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

 

原文链接:https://blog.csdn.net/javaliuzhiyue/article/details/90297579

除非注明,否则均为李锋镝的博客 - LiFengdi.Com原创文章,转载必须以链接形式标明本文链接
本文链接:https://www.lifengdi.com/archives/transport/3491
标签: MySQL navicat 数据库
最后更新:2021年9月14日

李锋镝

既然选择了远方,便只顾风雨兼程。

打赏 点赞
< 上一篇
下一篇 >
guest
您的姓名(必填)
您的邮箱(必填)
您的站点
guest
您的姓名(必填)
您的邮箱(必填)
您的站点
2 评论
最热
最新 最旧
Inline Feedbacks
查看所有评论
强仔
强仔
游侠
2021年9月21日 08:42

大佬 :zhenbang: ,中秋快乐

0
0
回复
李锋镝
李锋镝
博主
回复  强仔
2021年9月21日 10:24

@强仔 中秋快乐~ :douyin.tianyuebing:

0
0
回复
网站统计
  • 文章总数:257 篇
  • 评论总数:406 篇
  • 标签数量:218 个
  • 最后更新:2022年5月13日 10:30
  • 建站日期:2016年6月6日
  • 运行天数:2170天

爆竹声中一岁除,春风送暖入屠苏。
千门万户曈曈日,总把新桃换旧符。

最新 热点 随机
最新 热点 随机
Python SQL查询使用动态表名 C# 11 的这个新特性,我愿称之最强! iTerm2设置SSH自动连接服务器 一线技术人的成长思考总结 蓝奏云地址怎么天天失效…… IDEA下载源码报:Cannot connect to the Maven process. Try again later.
关于8月29号下午博客故障的一些记录办理居住证困难重重啊!WordPress的自动更新好烦啊醒醒~补个税了居住证签注...十一节后开工头一天,修了个耳机……
来来来,用python画一个冰墩墩儿 Hibernate、MyBatis的简介、区别以及优化 docker registry私库镜像删除 Dockerfile指令详解之COPY和ADD CentOS安装docker 彻底搞懂mysql日志系统binlog,redolog,undolog
标签聚合
日常 架构 ElasticSearch MySQL 数据库 分布式 JAVA SpringBoot
最近评论
李锋镝 发布于 5 天前(05月11日) :douyin.19: 老哥你太谦虚了
林三 发布于 6 天前(05月10日) 镝兄,你这满屏的代码我是看不懂了~ 哈哈
庞先生 发布于 2 周前(05月01日) 您好博主,由于loli域名已经出售,「城南旧事」博客网站链接申请更换链接为 www.pho.ink ...
李锋镝 发布于 4 周前(04月21日) 你修改的jdk版本和你本地的版本一致吗?
zhendebuhaoyong 发布于 4 周前(04月20日) 大哥 你这写的啥玩意儿啊 不好使啊
有情链接
  • 志文工作室
  • 临窗旋墨
  • 旧时繁华
  • 城南旧事
  • 强仔博客
  • 林三随笔
  • 徐艺扬的博客
  • 猫鼬的星球计划
  • 云辰博客
  • 韩小韩博客
  • 知向前端
  • 阿誉的博客
  • 林羽凡
  • 情侣头像
  • 哥斯拉
  • Xym's blog

COPYRIGHT © 2022 lifengdi.com. ALL RIGHTS RESERVED.

Theme Kratos Made By Seaton Jiang

豫ICP备16004681号-2