Navicat导出ncx解析数据库密码
网址:代码在线运行 - 在线工具
复制代码粘贴到上网址 修改倒数第二行需要解析的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解析数据库密码相关推荐
- Navicat导出ncx文件并解密连接密码
Navicat导出ncx文件并解密连接密码(mysql为例) 一.导出.ncx文件解密 file--导出连接--勾上导出密码--确定: 打开生成的.ncx文件: 复制加密的password,使用下面的 ...
- Navicat 导出链接中获取密码
Navicat 导出链接中获取密码 1.导出Navicat链接 2.在线运行以下代码(PHP) 在线运行代码地址:https://tool.lu/coderunner/ 将代码中的xxxxxxxxxx ...
- Navicat导出链接查看数据库明文密码
测试环境:Navicat Premium 版本15.0.25 理论版本12以上即可. 参考地址:navicat~导出数据库密码 - 走看看 Hutool参考文档 代码 import cn.hutool ...
- navicat导出和导入数据库里面的数据
一.引言 当我们开发完软件部署到用户电脑上时,在客户现场可能出现各种各样的bug.这个时候我们可以将客户现场的数据库内容导出,然后导入到开发用的电脑上来分析,调试.下面以mysql为例讲解具体操作方法 ...
- mysql导出表到新建_用navicat导出mysql的数据库后,再用navicat导入到新建的数据库,报错。...
如题.错误如下[Err]1146-Table'tesss.v_employee_superior_2'doesn'texist[Err]CREATETABLE`wf_type_subject_sc_t ...
- java配置文件中数据库密码加密
最近,有位读者私信我说,他们公司的项目中配置的数据库密码没有加密,编译打包后的项目被人反编译了,从项目中成功获取到数据库的账号和密码,进一步登录数据库获取了相关的数据,并对数据库进行了破坏. 虽然这次 ...
- 不知道密码导出oracle数据库,Oracle数据库密码重置、导入导出库命令示例应用
重置办法如下:打开CMD命令提示符,然后输入下面命令进行重置: 输入sqlplus /nolog,回车 SQL> conn /as sysdba 已连接: SQL>alter user s ...
- 01-查看Navicat加密的数据库密码
目录 查看Navicat加密的数据库密码 1.打开运行窗口,输入regedit,点击确认按钮,打开注册表编辑器 2.在注册表中找到Navicat加密后的密码 3.打开PHP在线运行工具,粘贴解密代码 ...
- navicat导出数据库数据
一.前言 最近在转移数据库数据,前期用了datax同步数据,速度很快.还有另一个朴素的做法,直接在navicat中导出数据. 可以选择:仅导出结构或者导出结构和数据. 二.navicat导出数据 选择 ...
最新文章
- 清理多个varnish服务器缓存的脚本
- 消费者驱动的微服务契约测试套件:Spring Cloud Contract
- 【CyberSecurityLearning 50】JS 基础+函数+对象+事件
- Pandas中文官档 ~ 基础用法1
- virtualbox怎么共享文件夹 linux,Virtualbox中Ubuntu设置共享文件夹
- C/C++之string类小结
- 基本概念---part5
- linux模拟cpu过载,linux下模拟CPU占用100%小程序
- mysql 主主复制
- 一个发散动画的菜单控件(主要记录控件x,y坐标的运动状况)
- vs使用中遇到的问题与插件
- 贪心科技机器学习训练营(九)
- python nlp文本摘要_NLP(十一) 提取文本摘要
- 计算机应用基础知识1
- 【Appium】手机滑动swipe方法及如何进行坐标定位
- html js更新数据不刷新页面,用javascript实现无刷新更新数据
- 杨浦区双创小巨人、科技小巨人申请条件及奖励政策
- [博应用软件]如何正确安装路由器?
- (转贴) 《超越自己》
- Python——切片操作
热门文章
- 部分应用redis账号被锁,解锁
- 电力杆塔北斗倾斜监测终端
- 视频教程-实用通俗易懂的设计模式-软件设计
- 百度炮轰Google搜索不创新 拟全力进攻云搜索
- 【FreeSwitch开发实践】外呼网关配置(拨打电话)
- 考研复试专业课面试——C++
- 尔宾团队角色(Belbin Team Roles),亦被称为贝尔宾团队角色表(Belbin Team Inventory)
- matlab小波神经网络,MATLAB 小波神经网络预测求助大神
- 从零学本体dApp开发(20): 分片合约也有Runtime dAPI
- python从入门到放弃篇31(selenium库)模拟天猫登录输入不含验证码,初步实现