使用python解码navicat导出的数据库连接信息

解码脚本如下:

from Crypto.Cipher import AES
from binascii import a2b_hex


class PrpCrypt(object):
    def __init__(self):
        self.key = 'libcckeylibcckey'.encode('utf-8')
        self.mode = AES.MODE_CBC
        self.iv = 'libcciv libcciv '.encode('utf-8')

    def decrypt(self, text):
        text = text.encode('utf-8') if type(text) == str else text
        cryptor = AES.new(self.key, self.mode, self.iv)
        plain_text = cryptor.decrypt(a2b_hex(text))
        return bytes.decode(plain_text).rstrip()


if __name__ == '__main__':
    pc = PrpCrypt()
    print('密码:', pc.decrypt('727F197D38E9AD02E797165FFA83AE8E7B523BEA9E073FD73BD9AA0F1B896BFB'))

将navicat导出的connections.ncx文件打开,找到密码,粘贴到上述脚本中。

 执行后报错

pycham安装crypto后还是报错,默认安装后文件夹名称是小写,需要将首字母改为大写。

此时进入该文件夹发现仍不存在Cipher,执行脚本还是报错

需要再安装pycryptodome,安装后查看文件夹Cipher已经存在了

 

再执行脚本就能解码出密码了。但是解码后存在一部分乱码,实际密码是乱码前的那部分信息,试了几个发现是偶现情况,这个目前还没搞清楚原因,有知道的可以在评论区告诉我

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值