网址:代码在线运行 - 在线工具

复制代码粘贴到上网址  修改倒数第二行需要解析的password  运行代码

<?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('5658213B');
$decode = $navicatPassword->decrypt('复制出来的密码');
echo $decode."\n";
?>

Navicat导出ncx解析数据库密码相关推荐

  1. Navicat导出ncx文件并解密连接密码

    Navicat导出ncx文件并解密连接密码(mysql为例) 一.导出.ncx文件解密 file--导出连接--勾上导出密码--确定: 打开生成的.ncx文件: 复制加密的password,使用下面的 ...

  2. Navicat 导出链接中获取密码

    Navicat 导出链接中获取密码 1.导出Navicat链接 2.在线运行以下代码(PHP) 在线运行代码地址:https://tool.lu/coderunner/ 将代码中的xxxxxxxxxx ...

  3. Navicat导出链接查看数据库明文密码

    测试环境:Navicat Premium 版本15.0.25 理论版本12以上即可. 参考地址:navicat~导出数据库密码 - 走看看 Hutool参考文档 代码 import cn.hutool ...

  4. navicat导出和导入数据库里面的数据

    一.引言 当我们开发完软件部署到用户电脑上时,在客户现场可能出现各种各样的bug.这个时候我们可以将客户现场的数据库内容导出,然后导入到开发用的电脑上来分析,调试.下面以mysql为例讲解具体操作方法 ...

  5. mysql导出表到新建_用navicat导出mysql的数据库后,再用navicat导入到新建的数据库,报错。...

    如题.错误如下[Err]1146-Table'tesss.v_employee_superior_2'doesn'texist[Err]CREATETABLE`wf_type_subject_sc_t ...

  6. java配置文件中数据库密码加密

    最近,有位读者私信我说,他们公司的项目中配置的数据库密码没有加密,编译打包后的项目被人反编译了,从项目中成功获取到数据库的账号和密码,进一步登录数据库获取了相关的数据,并对数据库进行了破坏. 虽然这次 ...

  7. 不知道密码导出oracle数据库,Oracle数据库密码重置、导入导出库命令示例应用

    重置办法如下:打开CMD命令提示符,然后输入下面命令进行重置: 输入sqlplus /nolog,回车 SQL> conn /as sysdba 已连接: SQL>alter user s ...

  8. 01-查看Navicat加密的数据库密码

    目录 查看Navicat加密的数据库密码 1.打开运行窗口,输入regedit,点击确认按钮,打开注册表编辑器 2.在注册表中找到Navicat加密后的密码 3.打开PHP在线运行工具,粘贴解密代码 ...

  9. navicat导出数据库数据

    一.前言 最近在转移数据库数据,前期用了datax同步数据,速度很快.还有另一个朴素的做法,直接在navicat中导出数据. 可以选择:仅导出结构或者导出结构和数据. 二.navicat导出数据 选择 ...

最新文章

  1. 清理多个varnish服务器缓存的脚本
  2. 消费者驱动的微服务契约测试套件:Spring Cloud Contract
  3. 【CyberSecurityLearning 50】JS 基础+函数+对象+事件
  4. Pandas中文官档 ~ 基础用法1
  5. virtualbox怎么共享文件夹 linux,Virtualbox中Ubuntu设置共享文件夹
  6. C/C++之string类小结
  7. 基本概念---part5
  8. linux模拟cpu过载,linux下模拟CPU占用100%小程序
  9. mysql 主主复制
  10. 一个发散动画的菜单控件(主要记录控件x,y坐标的运动状况)
  11. vs使用中遇到的问题与插件
  12. 贪心科技机器学习训练营(九)
  13. python nlp文本摘要_NLP(十一) 提取文本摘要
  14. 计算机应用基础知识1
  15. 【Appium】手机滑动swipe方法及如何进行坐标定位
  16. html js更新数据不刷新页面,用javascript实现无刷新更新数据
  17. 杨浦区双创小巨人、科技小巨人申请条件及奖励政策
  18. [博应用软件]如何正确安装路由器?
  19. (转贴) 《超越自己》
  20. Python——切片操作

热门文章

  1. 部分应用redis账号被锁,解锁
  2. 电力杆塔北斗倾斜监测终端
  3. 视频教程-实用通俗易懂的设计模式-软件设计
  4. 百度炮轰Google搜索不创新 拟全力进攻云搜索
  5. 【FreeSwitch开发实践】外呼网关配置(拨打电话)
  6. 考研复试专业课面试——C++
  7. 尔宾团队角色(Belbin Team Roles),亦被称为贝尔宾团队角色表(Belbin Team Inventory)
  8. matlab小波神经网络,MATLAB 小波神经网络预测求助大神
  9. 从零学本体dApp开发(20): 分片合约也有Runtime dAPI
  10. python从入门到放弃篇31(selenium库)模拟天猫登录输入不含验证码,初步实现