navicat连接过的库忘记密码

1、点击文件->导出连接

在这里插入图片描述

2、勾选想要知道密码的库

在这里插入图片描述

3、打开导出的文件搜索Password

在这里插入图片描述

4、复制Password解密

把下面的php代码复制到在线运行php的网站,替换最下面的decrypt(‘B7246A6E64D4F50A563FA20427A47991’)括号里的内容,然后执行php代码,右边的就是你数据库的密码。
在这里插入图片描述
执行代码的在线网站:https://tool.lu/coderunner/

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/655843.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

PHP开发入门

PHP官网&#xff1a;PHP: Hypertext Preprocessor apache官网&#xff1a;https://httpd.apache.org/ 一、搭建PHP环境 下载apache 进入官网点击download 选择下载windows版本文件 点击进入下载界面 点击下载64位版本文件 下载后解压文件 解压文件后进入 D:\httpd-2.4.59-24…

高效写代码java-推荐插件1(格式转化 ConverterX )-日后待更新

ConverterX 主要功能:格式转化 字符串格式转换 日期转换 Json格式转义 字符格式 快捷键 ctrl shiftS Upper(CODEEASE)字符串全部变成大写Lower(codeease)字符串全部变成小写Camel(codeEase)字符串变成小驼峰ClassCaemel(CodeEase)字符串变成大驼峰UnderlineUpper(CODE_EAS…

《TCP/IP网络编程》(第十二章)I/O复用(1)

本章将讨论实现并发服务器的第二种办法&#xff0c;基于I/O复用的服务器端构建。 I/O复用它允许单个进程或线程同时处理多个输入/输出&#xff08;I/O&#xff09;操作&#xff0c;而无需为每个I/O操作创建一个独立的线程或进程。这种技术可以显著提高应用程序的效率和性能&…

多模态中的模态有哪些

“多模态”这个名字中的“模态”&#xff08;modality&#xff09;&#xff0c;指的是不同的数据类型或信息源。在多模态大模型中&#xff0c;常见的模态包括&#xff1a; 文本模态&#xff1a; 包括自然语言文本、语音识别文本等。 图像模态&#xff1a; 指图像数据&#xff…

SEO之核心关键词(二)

初创企业或者需要建站的朋友看以下两篇文章&#xff0c;谢谢支持&#xff1a; 我给不会敲代码又想搭建网站的人建议新手上云 &#xff08;接上一篇。。。。&#xff09; 4、查询搜索次数 经过自己及朋友、同事的头脑风暴和检查竞争对手网站之后&#xff0c;再到Google 关键词…

力扣232. 用栈实现队列(两栈实现队列)

Problem: 232. 用栈实现队列 文章目录 题目描述思路Code 题目描述 思路 利用两个栈&#xff0c;一个入栈一个出栈搭配着实现队列的相关操作&#xff1a; 1.创建两个栈stack1和stack2&#xff1b; 2.void push(int x):将要入队的元素先入栈stack1&#xff1b; 3.int pop()&…

Vue3中点击关闭按钮后清除 el-table 表单内容

Vue3中点击关闭按钮后清除 el-table 表单内容 一、前言1、关闭事件2、清除函数实现3、具体代码 一、前言 在 Vue 3 中&#xff0c;通过使用 Element UI 的 el-table 组件来展示表格数据是一种常见的做法。有时候&#xff0c;当用户点击关闭按钮后&#xff0c;我们希望能够清除…

寒冬来了,字节跳动开启裁员新模式。。

大家好&#xff0c;我是白露啊。 不得不说&#xff0c;字节跳动还是真的会搞事啊。 最近一段时间&#xff0c;字节搞出了一个裁员新模式&#xff1a;“细水长流”。这个寓意和“财&#xff08;裁&#xff09;源&#xff08;员&#xff09;广进”计划差不多了&#xff0c;只不…

Docker安装Nginx 并实现通过nginx部署静态网址

Docker镜像就是一个只读的模板&#xff0c;可以用来创建Docker容器。 例如&#xff1a;一个镜像可以包含一个完整的centos操作系统环境&#xff0c;里面仅安装了mysql、nginx等或用户需要的其他应用程序。 Docker提供了一个非常简单的机制来创建镜像或者更新现有的镜像&#…

马斯克的 xAI 帝国!60亿融资背后的超级布局?

在全球科技竞技场&#xff0c;每个重大融资事件都是对行业格局的一次重塑。近日&#xff0c;埃隆马斯克的人工智能初创企业 xAI 成功完成了一轮规模空前的融资——60亿美元&#xff0c;此举无疑在业界投下了一枚震撼弹&#xff0c;标志着 AI 领域内一场新的竞赛拉开了序幕。 …

rk3568_mutex

文章目录 前言1、什么是mutex?1.1mutex互斥体API函数二、实验2.1实验目的2.2源码2.3结果图前言 本文记录的是rk3568开发板基础上做的mutex实验 1、什么是mutex? mutex是互斥体,它是比信号量semaphore更加专业的机制。 在我们编写Linux驱动的时候遇到需要互斥的地方建议使用…

【Unity程序】Unity游戏开发中常用的设计模式【一】

&#x1f468;‍&#x1f4bb;个人主页&#xff1a;元宇宙-秩沅 &#x1f468;‍&#x1f4bb; hallo 欢迎 点赞&#x1f44d; 收藏⭐ 留言&#x1f4dd; 加关注✅! &#x1f468;‍&#x1f4bb; 本文由 秩沅 原创 &#x1f468;‍&#x1f4bb; 收录于专栏&#xff1a;Uni…

安全性基础知识

安全性基础知识 导航 文章目录 安全性基础知识导航一、网络攻击二、两类密码体制-对称密钥密码体制网络安全内容 三、数字签名与信息摘要四、数字信封五、PKI六、防火墙技术七、入侵检测系统八、计算机病毒九、常见的防病毒软件十、网络安全协议 一、网络攻击 二、两类密码体制…

解读makefile中的.PHONY

在 Makefile 中&#xff0c;.PHONY 是一个特殊的目标&#xff0c;用于声明伪目标&#xff08;phony target&#xff09;。伪目标是指并不代表实际构建结果的目标&#xff0c;而是用来触发特定动作或命令的标识。通常情况下&#xff0c;.PHONY 会被用来声明一组需要执行的动作&a…

accelerate在pycham中执行的方法

1. 简介 通常情况下我们在pycharm中默认执行python.exe xxx.py&#xff0c;在命令行中执行accelerate xxx.py。 下面介绍如何在pycharm中执行accelerate的方法&#xff0c;主要目的是便于后续的代码调试。 2. 内容 第一步&#xff0c;运行->编辑配置&#xff1a; 第二步…

GTD时间管理法

Part 1. What is GTD? | 什么是GTD&#xff1f; GTD is a framework that enhances focus and productivity. Through techniques such as capturing all tasks in a trusted system and breaking down complex projects into actionable items, GTD allows individuals to co…

【项目教程】FFmpeg+SDL2实现视频播放器

一、前言 学习ffmpeg和sdl&#xff0c;并编写一个视频播放器&#xff0c;是一个很好的音视频开发项目。 虽然关于视频播放器的原理已经有很多人在博客中进行了讲解&#xff0c;但是很多人不提供视频和代码&#xff0c;这也是我写这篇博客的主要原因。 二、在视频播放器中&am…

高效编写大模型 Prompt 提示词,解锁 AI 无限创意潜能

随着 ChatGPT 的出现&#xff0c;AI 成为新的焦点&#xff0c;有人说过“未来 50%的工作将是提示词工作”&#xff0c;目前很多公司也在开始招聘 Prompt 提示词工程师。Prompt&#xff08;提示词&#xff09;成为了连接创意与技术的桥梁&#xff0c;它不仅是简单的指令&#xf…

NSSCTF中的pop、babyupload、cve版本签到、奇妙的MD5、easy_html

目录 [SWPUCTF 2021 新生赛]pop [NISACTF 2022]babyupload ​编辑[GKCTF 2020]cve版签到 [SWP5UCTF 2022 新生赛]奇妙的MD5 [HNCTF 2022 Week1]easy_html 今日总结&#xff1a; [SWPUCTF 2021 新生赛]pop 1.代码审计 <?phperror_reporting(0); show_source("…

dubbo复习:(10)使用tripple协议进行通信

一、pom.xml <?xml version"1.0" encoding"UTF-8"?> <project xmlns"http://maven.apache.org/POM/4.0.0"xmlns:xsi"http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation"http://maven.apache.org/POM/4.…