如何查看Navicat加密的数据库密码 全球短讯
2023-04-22 06:23:48来源:脚本之家
目录
查看Navicat加密的数据库密码1、打开运行窗口,输入regedit,点击确认按钮,打开注册表编辑器2、在注册表中找到Navicat加密后的密码3、打开PHP在线运行工具,粘贴解密代码4. 修改倒数第三行NavicatPassword的版本值5、更改倒数第二行decrypt()方法中的字符串为Navicat加密后的密码6、点击执行,右侧得到解密后的密码附录:navicat找出加密的密码Navicat导出(推荐)解密密文查看Navicat加密的数据库密码
背景:本机装的MySQL数据库密码忘记了,打开了Navicat连接过数据库,不过密码是加密的,既然能加密那就能解密,哈哈哈哈。
【资料图】
解密后发现密码居然是password,好尴尬
1、打开运行窗口,输入regedit,点击确认按钮,打开注册表编辑器
2、在注册表中找到Navicat加密后的密码
展开【HKEY_CURRENT_USER】展开【Software】展开【PremiumSoft】展开【NavicatPG】展开【Servers】选择 【MySQL】右侧找到 pwd,双击并复制数值数据3、打开PHP在线运行工具,粘贴解密代码
工具地址:https://tool.lu/coderunner复制解密代码到工具中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); $navicatPassword = new NavicatPassword(12); //解密 //$decode = $navicatPassword->decrypt("15057D7BA390"); $decode = $navicatPassword->decrypt("E75BF077AB8BAA3AC2D5"); // 替换成上一步的数据数值 echo $decode."\n"; ?>
4. 修改倒数第三行NavicatPassword的版本值
5、更改倒数第二行decrypt()方法中的字符串为Navicat加密后的密码
6、点击执行,右侧得到解密后的密码
附录:navicat找出加密的密码
Navicat(11.2.7、12.1.15、15.1.17、16.0.6上述版本均已通过测试)进入注册表进行查询使用【Win】+ 【R】组合快捷键,快速打开运行命令框,在打开后面键入命令:【Regedit】打开注册表编辑器
文件路径:
计算机\HKEY_CURRENT_USER\SOFTWARE\PremiumSoft\Navicat\Servers\
以Navicat16为例,通过上方路径,找到注册表中存储密码值的位置(如下图),选中要查看密码的连接名称,双击Pwd项,复制对应的值,至此获得了密文
Navicat导出(推荐)
以Navicat16为例,菜单栏上点击文件,选择导出连接...,一定要选中导出密码!!!导出格式为*.ncx(该ncx本质上是xml文件,文件中包含连接的全部信息)
注:Navicat11版本没有勾选导出密码选项,直接导出即可;Navicat12+版本要勾选【导出密码】选项!
解密密文
Go
https://www.nhooo.com/tool/java8/
运行代码
Go
import javax.crypto.Cipher; import javax.crypto.spec.IvParameterSpec; import javax.crypto.spec.SecretKeySpec; import javax.xml.bind.DatatypeConverter; import java.nio.charset.StandardCharsets; import java.security.MessageDigest; import java.util.Arrays; public class Main { public static void main(String []args) { //navicat11解密 Navicat11Cipher de = new Navicat11Cipher(); System.out.println(de.decryptString("密文放此处")); //navicat12+解密 Navicat12Cipher de12 = new Navicat12Cipher(); System.out.println(de12.decryptString("密文放此处")); } static class Navicat11Cipher { public static final String DefaultUserKey = "3DC5CA39"; private static byte[] _IV; private static SecretKeySpec _Key; private static Cipher _Encryptor; private static Cipher _Decryptor; private static void initKey(String UserKey) { try { MessageDigest sha1 = MessageDigest.getInstance("SHA1"); byte[] userkey_data = UserKey.getBytes(StandardCharsets.UTF_8); sha1.update(userkey_data, 0, userkey_data.length); _Key = new SecretKeySpec(sha1.digest(), "Blowfish"); } catch (Exception e) { e.printStackTrace(); } } private static void initChiperEncrypt() { try { // Must use NoPadding _Encryptor = Cipher.getInstance("Blowfish/ECB/NoPadding"); _Encryptor.init(Cipher.ENCRYPT_MODE, _Key); } catch (Exception e) { e.printStackTrace(); } } private static void initChiperDecrypt() { try { // Must use NoPadding _Decryptor = Cipher.getInstance("Blowfish/ECB/NoPadding"); _Decryptor.init(Cipher.DECRYPT_MODE, _Key); } catch (Exception e) { e.printStackTrace(); } } private static void initIV() { try { byte[] initVec = DatatypeConverter.parseHexBinary("FFFFFFFFFFFFFFFF"); _IV = _Encryptor.doFinal(initVec); } catch (Exception e) { e.printStackTrace(); } } private void xorBytes(byte[] a, byte[] b) { for (int i = 0; i < a.length; i++) { int aVal = a[i] & 0xff; // convert byte to integerint bVal = b[i] & 0xff; a[i] = (byte) (aVal ^ bVal); // xor aVal and bVal and typecast to byte } } private void xorBytes(byte[] a, byte[] b, int l) { for (int i = 0; i < l; i++) { int aVal = a[i] & 0xff; // convert byte to integerint bVal = b[i] & 0xff; a[i] = (byte) (aVal ^ bVal); // xor aVal and bVal and typecast to byte } } static { initKey(DefaultUserKey); initChiperEncrypt(); initChiperDecrypt(); initIV(); } private byte[] Encrypt(byte[] inData) { try { byte[] CV = Arrays.copyOf(_IV, _IV.length); byte[] ret = newbyte[inData.length]; int blocks_len = inData.length / 8; int left_len = inData.length % 8; for (int i = 0; i < blocks_len; i++) { byte[] temp = Arrays.copyOfRange(inData, i * 8, (i * 8) + 8); xorBytes(temp, CV); temp = _Encryptor.doFinal(temp); xorBytes(CV, temp); System.arraycopy(temp, 0, ret, i * 8, 8); } if (left_len != 0) { CV = _Encryptor.doFinal(CV); byte[] temp = Arrays.copyOfRange(inData, blocks_len * 8, (blocks_len * 8) + left_len); xorBytes(temp, CV, left_len); System.arraycopy(temp, 0, ret, blocks_len * 8, temp.length); } return ret; } catch (Exception e) { e.printStackTrace(); return null; } } public String encryptString(String inputString) { try { byte[] inData = inputString.getBytes(StandardCharsets.UTF_8); byte[] outData = Encrypt(inData); return DatatypeConverter.printHexBinary(outData); } catch (Exception e) { e.printStackTrace(); return""; } } private byte[] Decrypt(byte[] inData) { try { byte[] CV = Arrays.copyOf(_IV, _IV.length); byte[] ret = newbyte[inData.length]; int blocks_len = inData.length / 8; int left_len = inData.length % 8; for (int i = 0; i < blocks_len; i++) { byte[] temp = Arrays.copyOfRange(inData, i * 8, (i * 8) + 8); temp = _Decryptor.doFinal(temp); xorBytes(temp, CV); System.arraycopy(temp, 0, ret, i * 8, 8); for (int j = 0; j < CV.length; j++) { CV[j] = (byte) (CV[j] ^ inData[i * 8 + j]); } } if (left_len != 0) { CV = _Encryptor.doFinal(CV); byte[] temp = Arrays.copyOfRange(inData, blocks_len * 8, (blocks_len * 8) + left_len); xorBytes(temp, CV, left_len); for (int j = 0; j < temp.length; j++) { ret[blocks_len * 8 + j] = temp[j]; } } return ret; } catch (Exception e) { e.printStackTrace(); return null; } } public String decryptString(String hexString) { try { byte[] inData = DatatypeConverter.parseHexBinary(hexString); byte[] outData = Decrypt(inData); returnnew String(outData, StandardCharsets.UTF_8); } catch (Exception e) { e.printStackTrace(); return""; } } } static class Navicat12Cipher { private static SecretKeySpec _AesKey; private static IvParameterSpec _AesIV; static { _AesKey = new SecretKeySpec("libcckeylibcckey".getBytes(StandardCharsets.UTF_8), "AES"); _AesIV = new IvParameterSpec("libcciv libcciv ".getBytes(StandardCharsets.UTF_8)); } public String encryptString(String plaintext) { try { Cipher cipher = Cipher.getInstance("AES/CBC/PKCS5Padding"); cipher.init(Cipher.ENCRYPT_MODE, _AesKey, _AesIV); byte[] ret = cipher.doFinal(plaintext.getBytes(StandardCharsets.UTF_8)); return DatatypeConverter.printHexBinary(ret); } catch (Exception e) { e.printStackTrace(); return""; } } public String decryptString(String ciphertext) { try { Cipher cipher = Cipher.getInstance("AES/CBC/PKCS5Padding"); cipher.init(Cipher.DECRYPT_MODE, _AesKey, _AesIV); byte[] ret = cipher.doFinal(DatatypeConverter.parseHexBinary(ciphertext)); returnnew String(ret, StandardCharsets.UTF_8); } catch (Exception e) { e.printStackTrace(); return""; } } } }
到此这篇关于如何查看Navicat加密的数据库密码的文章就介绍到这了,更多相关Navicat查看数据库密码内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
关键词:
责任编辑:hnmd003
精彩推送
- 如何查看Navicat加密的数据库密码 全球短讯
- 【时快讯】主大爱降下来歌谱男唱 主大爱降下来歌谱
- 热资讯!增补进三人篮球国家男队!赵柏清:深知能力有限 一定加倍努力
- 股票行情快报:宁通信B(200468)4月21日游资资金净卖出8.13万元_全球独家
- 天天即时看!元宇宙建设添利器 Meta强推视觉大模型 多模态AI有望加速发展
- 互联网营销师:共享美好生活
- 郑州银行:选举赵飞为董事长|天天新资讯
- 当前热讯:旅客主动帮忙擦玻璃?列车长说出实情
- 手术机器人企业密集IPO 国产替代寻求突破|每日速看
- 推动棉花产业链协调发展
- 不省心!中甲开幕前1天,“致球迷一封信”火了,与中超形成鲜明对比-环球今头条
- 碳酸锂价格跌势放缓 厂商坦言市场已有活跃迹象
- 今日播报!《黑暗之魂3》二周目通关幽邃教堂奇怪细节图文详解
- 行走黄渤海丨“温泉水”助力乡村振兴 威海这个村集体年收入达90万 世界微速讯
- 怎样选购油烟机_抽油烟机怎么选-最新快讯
- 中升控股(00881.HK):4月21日南向资金减持12.85万股
- 越西县板桥镇“三个突出”举措 筑牢安全生产防线 环球观天下
- 延川县气象台解除大风蓝色预警【Ⅳ级/一般】
- 《大侦探8》收官,注解全新“宇宙观”,开拓沉浸式全民普法
- “交警蓝”守护“环卫橙” 三亚交警走进环卫企业开展交通安全宣传|春季守护行动 环球速看料
- 今日热文:柚子可以存放多久柚子可以放冰箱吗?
- 同比增长4.1%!昆明市一季度经济运行情况出炉|环球新视野
- 当日快讯:博汇股份:环保芳烃油升级项目预计下半年开始建设,建设期一年
- 全球观察:今日时讯:女子头痛40多年原来是心脏漏洞 影像医生慧眼如炬洞见腹痛隐蔽真凶
- 钢铁是怎样炼成的小说解说_钢铁是怎样炼成的 小说
- 西平县酒店初级中学开展防溺水主题教育活动-当前通讯
- 闻风而动—阻恶劣天气 保设备安全
- 世界通讯!勇士大胜国王追到1-2,苏群可能说对了!
- 三星医疗溢价收购关联方亏损标的 经营8年康复医疗服务收入仍有限
- 2023上海车展:大众朗逸1.5T车型首发亮相
- 全球快播:炉石传说冒险模式砰砰计划奖励_炉石传说冒险模式砰砰计划
- 首个包头市民营经济人士理想信念教育基地挂牌
- 车圈大佬纷纷打卡,奇瑞展台上的“潜伏”好戏正在上演!
- 偶像宣言樱花动漫(偶像宣言)_视讯
- 电脑分辨率out of range_天天快看点
- 今日观点!婚姻起诉书格式范文(共22篇)
- 多数人宽容少数勇气作文(通用15篇) 当前视讯
- 世界观热点:黑龙江省伊春市上甘岭市场监管所:优化营商环境举措进一步升温提速
- 焦点热文:走进21℃的城市 安顺市文化旅游推介会在广州举行
- 致敬历史!这所名牌大学在贵州有新动作!
- 全球市场观察:全球PMI数据将为市场带来一些动力-环球今日报
- 杭华股份(688571):4月21日技术指标出现看涨信号-“红三兵”
- 天天最资讯丨加工一批零件 加工一批零件
- 江西省长在深圳会见客商:以更实措施服务广大企业来江西发展
- 酷开推出智能投影 X5:支持 4K 解码、儿童模式,999 元-天天热推荐
- 支持民企发展公平是关键|环球即时
- 京北方(002987):该股换手率大于8%(04-21) 天天资讯
- 【独家焦点】上海今年首批供地收官 19宗地块收金519亿元
- 【世界时快讯】上海2023年第一批次集中供地 19宗收金519亿 参拍企业数量近6年最多
- 今热点:eo级板材甲醛释放量 eo级板材是什么意思
- 焦点速看:04月21日三门峡最新进出管控出入政策规定措施及疫情防控政策最新消息通知通告
- 环球今日讯!港股异动 | 黄金股走低 国际金价午后跌超1%
- 俄技集团:为苏-57战斗机研制了人工智能通信系统 时快讯
- 水利部:加快数字孪生水利建设 着力提升预报预警预演预案能力_世界讯息
- 世界热资讯!第六届煤炭科技创新高峰论坛在京举办
- 世界快播:伦纳德恐赛季报销,威少无望复仇湖人,但依然砍30分对飙太阳队
- 快看点丨宁波银行不很行了
- uat阶段_uat 天天通讯
- 易方达基金余海燕旗下易方达沪深300非银ETF一季报最新持仓,重仓中国平安 简讯
- 请律师见证需要收费吗收费标准如何 简讯
- 环球即时:毛虫入侵1.9万亩森林 隆回林长制精准制导空中打击
- 一季度邮政行业寄递业务量累计完成341.7亿件 同比增长8.5% 每日快报
- 网贷逾期会判刑吗_世界微动态
- 截至3月末我国5G基站总数达264.6万个 占移动基站总数的23.7%
- 环球今亮点!体坛:郝伟缺席未妨碍泰山队正常备战,队内有工作人员上吐下泻
- 广州市教育局:严肃查处校外培训机构、自媒体等参与违规招生行为|要闻速递
- 世界报道:美亚柏科股东户数增加1.19%,户均持股28.28万元
- 日本央行:日本银行已降低利率风险 金融体系依然稳健
- 全球热议:曝iPhone 15 Pro Max独占潜望长焦:苹果选了两家供应商
- 焦点关注:通州漷县民间美食节开幕 上百种“运河味”村庄美食亮相
- 成就伙伴 共赢未来 中信银行深圳分行举办IPO拟上市企业精品沙龙-天天热消息
- 大宗交易:迪尔化工成交79.21万元,溢价43.79%(04-20) 看点
- 当前快讯:乘联会:3月份皮卡市场销售4.8万辆 同比下降13%
- 小长假在即!不止有“淄博” 来“工博”也不错!
- 首届中欧绿色创新发展大会硅能源创新与发展论坛在江门举办
- 一季度上海市固定资产投资同比增长13.6%
- 当前视点!曙光数创股价又创新高,今日涨3.65%
- 全球球精选!全球连线|记者实地目睹旅美大熊猫“美香”接受肩周炎冷激光治疗
- 今日热讯:后宫养成类网页游戏排行榜_后宫养成类网页游戏
- 【财闻联播】火速上热搜!鸿星尔克请网友吃冰淇淋!_每日报道
- 首笔!邮储银行梅州市分行成功落地“带押过户”二手房贷款-全球热闻
- 炫车 更炫未来生活|世界快讯
- 2023上海车展期间 光庭信息发布汽车《超级软件工场白皮书》 快看点
- 储能招标丨10MW/10MWh!中国电建江西100MW风电场项目储能系统竞争性谈判
- 宝马MINI反问式再道歉堪称史诗级公关灾难:给礼仪小姐宽容是博同情?_世界焦点
- 焦点速读:360集团董事长周鸿祎:争取第一个城市智脑率先落地河南
- 探索算力高质量使用 蚂蚁集团2022年度碳减排量增长81%-每日热点
- 花火系列小说推荐_花火系列小说
- 西藏东财基金管理有限公司旗下基金2023年第一季度报告提示性公告 世界热头条
- 中国工程院院士郑纬民:算力将迎来高速扩张时代|环球快消息
- 南通支云今晚客战山东泰山,迎来队史第200场正式比赛
- 首钢股份:公司生产设备数字化率超过90%,“一键式控制”工序达到50个,应用129台套“工业机器人”,建有无人化智能库区15个
- 杭州警方公开“色狼”完整姓名上热搜!网调显示97%网友支持,律师:涉及公共利益可以公开|环球新动态
- 今日热闻!科泰电源:公司电力设备产品作为数据中心机房基础设施,在国内三大通信运营商、第三方数据中心建设运营方、几家大型的互联网企业和国内大型知名企业的数据中心机房,作为备用柴发系统有广泛应用
- 国家开发银行:对国家助学贷款实行2023年度免息及本金延期偿还_环球头条
- 天津“五一”假期推出五百余项文旅活动
- 世界新消息丨我爱我家:为降低公司经营风险,公司转让了大理泰业国际广场商业综合楼项目经营权,保留了对该项目继续提供招商及运营管理等轻资产服务
- Python面向对象编程-三大特性-继承-单继承
- “五一”太铁增开临客列车20趟 将开行“粤港澳”等旅游专列
- 不负春光 贵州按下文旅复苏“快进键”