首页 > 其他分享 >怎么找回Navicat保存的密码

怎么找回Navicat保存的密码

时间:2023-12-28 13:46:55浏览次数:22  
标签:function return string 找回 currentVector Navicat 密码 protected result

一、导出连接

二、选择需要导出的连接

 三、复制出加密密码

 四、把加密密码黏贴到下面代码倒数第二行,修改Navicat的版本(11或12版本)即可获取到密码

 PHP代码如下:

<?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 FatSmallTools\NavicatPassword; //需要指定版本,11或12 $navicatPassword = new NavicatPassword(11); //$navicatPassword = new NavicatPassword(11); //解密 //$decode = $navicatPassword->decrypt('15057D7BA390'); $decode = $navicatPassword->decrypt('495A0E77A69EA8'); echo $decode."\n";

 

标签:function,return,string,找回,currentVector,Navicat,密码,protected,result
From: https://www.cnblogs.com/buckliu/p/17932519.html

相关文章

  • Vue检测密码复杂度方法
    Vue检测密码复杂度方法<!--检测密码复杂度方法--><template><div><inputtype="password"v-model="password"@input="checkPasswordComplexity"><divv-if="complexityMessage">{{complexityMessa......
  • RabbitMQ学习二 修改默认密码
    RabbitMQ的一些常用命令#启动rabbitmqservicerabbitmq-serverstart#查看rabbitMQ的运行状态servicerabbitmq-serverstatus#开启rabbitMQ的后台管理插件rabbitmq-pluginsenablerabbitmq_management#重启RabbitMQ服务servicerabbitmq-serverrestart Rabbi......
  • 密码与杂项9
    misc1.流量包流量题。。。搜搜 跟着走 找到啦。。flag{da73d88936010da1eeeb36e945ec4b97} 2.二维码 是一个二维码 哈?!!! 记得把F换成小写,不然是错的3.文件分离,压缩包解密先看看属性有没有 没有 再用winhex看看 没flag,也没提示。看看有没有隐藏的......
  • docker部署Vaultwarden密码共享管理系统
    转自地址:https://blog.csdn.net/weixin_51697917/article/details/133654754Vaultwarden是一个开源的密码管理器,它是Bitwarden密码管理器的自托管版本。它提供了类似于Bitwarden的功能,允许用户安全地存储和管理密码、敏感数据和身份信息。Vaultwarden的主要特点包括:1.安全的数据存......
  • Navicat Premium16 永久破解版激活教程
    0.前期准备Navicat160版本与注册机:链接:https://pan.baidu.com/s/16CXh8sSWEShr25cUDvHMcw提取码:ngl0  1.开始操作安装好NavicatPremium16后,管理员打开打开注册机 复制软件路径,点击patch 点击Generate!再复制 断开网络打开Navicat,点击注册 输入永久许可证......
  • mybatis在读取配置文件,创建SqlSessionFactory对象时。需要对密码进行解密,再连接数据库
    1、我看了网上很多的方法,主要是说通过新建一个jdbc.properties来获取数据库连接池。但是我试了并没有作用。 2、解决办法:简单粗暴。先用后代码读取原有的mybatis-configuration.xml,然后将密码进行解密后,设值到xml中。最后把解密的xml作为源。去生成一份新的xml文件,把心的xml......
  • AES加密(一般用在登录的密码加密)
    后端说现在主流是AES,AES是一种使用密钥加密的算法,叫做对称加密方式AES加密的模式有两种:EBC,CBC(1)EBC(我用的这种,另一种自己百度)是一种基础的加密方式,密文被分割成分组长度相等的块(不足补齐),然后单独一个个加密,一个个输出组成密文。 1.cnpm installcrypto-js--save-dev2.......
  • 密码明文暗文切换
    在我们做winform登录页面时,为了保护用户因素要把密码显示为"*"号,点击按键可以看到密码要实现这个功能要用到textBox中的PasswordChar方法,登录界面如下:实现代码如下:namespaceSQLProjectDemo{publicpartialclassLoginForm:UIForm{stringpassword;......
  • 苹果13密码多次输错后显示不可用后尝试保留资料修复
    一、背景苹果13手机在多次输入错误密码后,屏幕显示处于安全状态,重启后显示处于不可用状态。网上找资料有几种解决方法,一些是不保留数据的,一些是可以保留数据的,本文是其中一种方法的实操。二、实操官网步骤在PC上(windows系统,有Mac电脑更好)下载iTuns软件,用该手机的AppleID登录(......
  • ansible设置用户密码
    用ansible设置用户的密码时,由于需要对传输的密码进行加密,#!/usr/bin/python3importcryptimportsys#接收要加密的密码password=sys.argv[1]#生成saltsalt=crypt.mksalt(crypt.METHOD_SHA512)#加密密码crypt_password=crypt.crypt(password,salt)#打印加密后......