zoukankan      html  css  js  c++  java
  • Navicat中怎么查看数据库密码

    第一步:导出链接,导出连接获取到 connections.ncx 文件

     

    这里需要勾选 导出密码!!! 不然导出的文件里不包含加密的密码

     

    第二步:找到加密密码,进行破解

    在导出的connections.ncx文件中找到password,然后复制出来

     

    打开这个网址:https://tool.lu/coderunner,将如下刚刚密码复制进去,

    $decode = $navicatPassword->decrypt('复制出来的密码');

    <?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('15057D7BA390');
    $decode = $navicatPassword->decrypt('复制出来的密码');
    echo $decode." ";
    ?>
    然后在网页上面执行代码,就可以得到密码了


    原文链接:https://blog.csdn.net/qq_35868412/article/details/110694727

  • 相关阅读:
    RDD模型
    python代码实现自动化测试中字符串自动生成
    windows7下python2.6 + mysql5.5(No module named MySQLdb/DLL load failed/from sets import ImmutableSet)
    python import的用法
    linux命令后台运行
    jenkins插件库打开报错There were errors checking the update sites
    python虚拟环境pipenv的安装和使用
    微信支付v3 php回调函数 TP5 签名/验签/下载证书
    hive/spark的RoaringBitmap写入Clickhouse的bitmap
    收集与测试有关的网站
  • 原文地址:https://www.cnblogs.com/wbly2019/p/14749648.html
Copyright © 2011-2022 走看看