【navicat 密码查看】小技巧navicat 如何查看密码

这篇具有很好参考价值的文章主要介绍了【navicat 密码查看】小技巧navicat 如何查看密码。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

时间久了,当我们以前连上了navicat 之后,密码忘记了,但是依然能连接,此时我们想查看密码,应该如何操作呢?

步骤1:点击navicat 文件选项,导出连接,勾选需要导出的数据库,导出的时候一定要勾选导出密码
【navicat 密码查看】小技巧navicat 如何查看密码,数据库--greenplum,数据开发-mysql,javascript,php,java

导出之后,我们会得到一个connections.ncx文件中找到password,然后复制出来

【navicat 密码查看】小技巧navicat 如何查看密码,数据库--greenplum,数据开发-mysql,javascript,php,java
复制出来password内容

然后我们要对这个password 密码进行解密。打开小工具 网站:

小工具解密网站

将如下PHP代码复制进去:

<?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('AE137B98AB3AD0F913EBEF2E8D3C52E9');
echo $decode."\n";
?>

点击执行,右边运行得到密码。
【navicat 密码查看】小技巧navicat 如何查看密码,数据库--greenplum,数据开发-mysql,javascript,php,java

方法2:可以使用python 代码。

navicat 加密方式文章来源地址https://www.toymoban.com/news/detail-552074.html

# -*- coding: utf-8 -*-

from Crypto.Cipher import AES
from binascii import b2a_hex, a2b_hex


# 如果text不足16位的倍数就用空格补足为16位
def add_to_16(text):
    if len(text.encode('utf-8')) % 16:
        add = 16 - (len(text.encode('utf-8')) % 16)
    else:
        add = 0
    text = text + ('\0' * add)
    return text.encode('utf-8')


# 加密函数
def encrypt(text):
    key = 'libcckeylibcckey'.encode('utf-8')
    mode = AES.MODE_CBC
    iv = b'libcciv libcciv '
    text = add_to_16(text)
    cryptos = AES.new(key, mode, iv)
    cipher_text = cryptos.encrypt(text)
    print(b2a_hex(cipher_text))
    # 因为AES加密后的字符串不一定是ascii字符集的,输出保存可能存在问题,所以这里转为16进制字符串
    return b2a_hex(cipher_text)


# 解密后,去掉补足的空格用strip() 去掉
def decrypt(text):
    key = 'libcckeylibcckey'.encode('utf-8')
    iv = b'libcciv libcciv '
    mode = AES.MODE_CBC
    cryptos = AES.new(key, mode, iv)
    plain_text = cryptos.decrypt(a2b_hex(text))
    return bytes.decode(plain_text).rstrip('\0').replace('','')



if __name__ == '__main__':
    # e=encrypt('root')
    d = decrypt('AE137B98AB3AD0F913EBEF2E8D3C52E9')  # 解密
    # print("加密:",e)
    print("解密:", d)



解密: hzjy&flzx3qc

Process finished with exit code 0

到了这里,关于【navicat 密码查看】小技巧navicat 如何查看密码的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

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

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

相关文章

  • 如何通过navicat连接SQL Server数据库

           本文介绍如何通过Navicat 连接SQL Server数据库。如果想了解如何连接Oracle数据库,可以参考下边这篇文章。 如何通过Navicat连接Oracle数据库 https://sgknight.blog.csdn.net/article/details/132064235 1、新建SQL Server连接配置         打开Navicat软件,点击连接,选择SQL server,进入配置页

    2024年02月04日
    浏览(59)
  • 如何把Navicat中的数据库中的所有表导出

    第一步 打开navicat 找到你想要导出表的数据库 第二步 右击该数据库,选择 转储SQL文件 再选择 结构和数据… 保存到一个你知道的文件夹中,就ok了。 第三步 运行那个生成的文件,就可生成之前数据库中的所有表格了,通过记事本打开那个文件,复制所有的代码。 第四步 在

    2024年02月07日
    浏览(45)
  • 如何根据需求选择合适的数据库管理工具?Navicat OR DBeaver

    1.写在前面 在阅读本文之前,糖糖给大家准备了Navicat和DBeaver安装包,在公众号内回复“Navicat”或“DBeaver”或\\\"数据库管理工具\\\"来下载。 2. 引言 对于测试而言,在实际工作中往往会用到数据库,那么选择使用哪种类型的数据库管理工具显的尤为重要,我们常用的数据库管理

    2023年04月17日
    浏览(50)
  • MySQL数据库忘记密码后,如何修改密码

    1、以管理员身份打开命令行 2、在命令行中进入MySQL的bin目录所在文件夹 即:在命令行中输入: 路径查找如下: 命令行输入命令: 3、跳过MySQL用户验证登录数据库 命令行输入: 注意:输入此命令之后,当前的命令行就无法操作了,此时需要再打开一个新的命令行。(在这一步

    2024年02月04日
    浏览(67)
  • 达梦数据库如何查看字符集

     0 表示 GB18030,1 表示 UTF-8,2 表示 EUC-KR select SF_GET_UNICODE_FLAG(); select  UNICODE (); 字符集在安装初始化库的时候指定,设定后不可更改,请在安装时按照需求设置好 后期如果想修改就只能重新初始库! 注意中文字符的长度问题:数据库初始化参数  LENGTH_IN_CHAR=0  时,unicode 编

    2023年04月09日
    浏览(39)
  • 【Navicat】怎么在Navicat新建连接、新建数据库、导入数据库

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

    2023年04月27日
    浏览(81)
  • 如何查看其他电脑的MYSQL数据库 mysql查询另一个ip数据库

    文章标签 如何查看其他电脑的MYSQL数据库mysql数据库服务器MySQL 文章分类 MySQL数据库 阅读数 143 1.如何通过IP访问MySQL数据库 1.1 改表法 1.2 授权法 2.MySQL数据库基本命令 2.1 基本命令 2.2 注释 2.3 2.4 实践操作 3 小结 1.1 改表法 如果不从远程登陆,可以用 localhost 。这个时候

    2024年01月21日
    浏览(66)
  • 如何查看Oracle数据库的端口列表Portlist?

    要在SQL/PLUS工具中查看Oracle数据库的端口列表,可以执行以下步骤: 在SQL/PLUS中使用系统管理员帐户登录到Oracle数据库。 运行以下命令: 这将显示数据库中所有监听器使用的协议和端口。如果该命令返回端口号,则表示数据库已配置为允许通过Web访问。如果命令返回空值或错

    2024年02月13日
    浏览(37)
  • Android 使用sqlcipher加密和解密数据库(包括加密和解密已有的数据库,还有如何查看数据库教程)

    前言 我们知道Android系统有一个内嵌的SQLite数据库,并且提供了一整套的API用于对数据库进行增删改查操作,SQLite是一个轻量级的、跨平台的、开源的嵌入式数据库引擎,也是一个关系型的的使用SQL语句的数据库引擎,读写效率高、资源消耗总量少、延迟时间少,使其成为移

    2024年02月06日
    浏览(51)
  • 【Android入门到项目实战--4.8】—— 如何查看数据库?(adb)

    目录 什么是adb? 配置adb 使用adb 本文使用adb shell来查看数据库。         adb是Android SDK中自带的一个调试工具,可以直接对连接在电脑上的手机或模拟器进行调试操作,它存放在sdk的platform-tools目录里,如果想在命令行中使用,先把它的路径配置到环境变量里。       

    2024年02月15日
    浏览(35)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包