当前位置: 首页 > news >正文

对网站的建议中国石油天然气第七建设公司网站

对网站的建议,中国石油天然气第七建设公司网站,帮企业建设网站销售,网站建设服务那一个便宜最近从Navicat换到了DBeaver#xff0c;导出配置文件发现配置文件里的密码都是加密的#xff0c;看网上的都是给的PHP代码#xff0c;因为环境问题#xff0c;就算是在线上运行的PHP代码也会报错#xff0c;所以就把这段代码改成Java了。 package com.unicdata.system.con… 最近从Navicat换到了DBeaver导出配置文件发现配置文件里的密码都是加密的看网上的都是给的PHP代码因为环境问题就算是在线上运行的PHP代码也会报错所以就把这段代码改成Java了。 package com.unicdata.system.controller.marketing;/*** Author: PengShangXing* Date: 2025/01/07/0007 15:13*/import javax.crypto.Cipher; import javax.crypto.spec.IvParameterSpec; import javax.crypto.spec.SecretKeySpec; import java.util.Arrays;/*** Author: PengShangXing* Date: 2025/01/07/0007 15:13*/ public class NavicatPassword {private int version 0;private final String aesKey libcckeylibcckey;private final String aesIv libcciv libcciv ;private final String blowString 3DC5CA39;private byte[] blowKey;private byte[] blowIv;public NavicatPassword(int version) {this.version version;this.blowKey sha1(3DC5CA39);this.blowIv hexToBytes(d9c7c3c8870d64bd);}public String encrypt(String string) throws Exception {String result null;switch (this.version) {case 11:result encryptEleven(string);break;case 12:result encryptTwelve(string);break;default:break;}return result;}private String encryptEleven(String string) throws Exception {int round string.length() / 8;int leftLength string.length() % 8;StringBuilder result new StringBuilder();byte[] currentVector blowIv;for (int i 0; i round; i) {byte[] temp encryptBlock(xorBytes(string.substring(8 * i, 8 * (i 1)).getBytes(), currentVector));currentVector xorBytes(currentVector, temp);result.append(bytesToHex(temp));}if (leftLength 0) {currentVector encryptBlock(currentVector);result.append(bytesToHex(xorBytes(string.substring(8 * round).getBytes(), currentVector)));}return result.toString().toUpperCase();}private byte[] encryptBlock(byte[] block) throws Exception {Cipher cipher Cipher.getInstance(Blowfish/ECB/NoPadding);SecretKeySpec keySpec new SecretKeySpec(blowKey, Blowfish);cipher.init(Cipher.ENCRYPT_MODE, keySpec);return cipher.doFinal(block);}private byte[] decryptBlock(byte[] block) throws Exception {Cipher cipher Cipher.getInstance(Blowfish/ECB/NoPadding);SecretKeySpec keySpec new SecretKeySpec(blowKey, Blowfish);cipher.init(Cipher.DECRYPT_MODE, keySpec);return cipher.doFinal(block);}private String encryptTwelve(String string) throws Exception {Cipher cipher Cipher.getInstance(AES/CBC/PKCS5Padding);SecretKeySpec keySpec new SecretKeySpec(aesKey.getBytes(), AES);IvParameterSpec ivSpec new IvParameterSpec(aesIv.getBytes());cipher.init(Cipher.ENCRYPT_MODE, keySpec, ivSpec);byte[] encrypted cipher.doFinal(string.getBytes());return bytesToHex(encrypted).toUpperCase();}public String decrypt(String string) throws Exception {String result null;switch (this.version) {case 11:result decryptEleven(string);break;case 12:result decryptTwelve(string);break;default:break;}return result;}private String decryptEleven(String upperString) throws Exception {byte[] string hexToBytes(upperString.toLowerCase());int round string.length / 8;int leftLength string.length % 8;StringBuilder result new StringBuilder();byte[] currentVector blowIv;for (int i 0; i round; i) {byte[] encryptedBlock Arrays.copyOfRange(string, 8 * i, 8 * (i 1));byte[] temp xorBytes(decryptBlock(encryptedBlock), currentVector);currentVector xorBytes(currentVector, encryptedBlock);result.append(new String(temp));}if (leftLength 0) {currentVector encryptBlock(currentVector);result.append(new String(xorBytes(Arrays.copyOfRange(string, 8 * round, string.length), currentVector)));}return result.toString();}private String decryptTwelve(String upperString) throws Exception {// 将十六进制字符串转换为字节数组byte[] string hexToBytes(upperString.toLowerCase());// 初始化AES解密Cipher cipher Cipher.getInstance(AES/CBC/PKCS5Padding);SecretKeySpec keySpec new SecretKeySpec(aesKey.getBytes(UTF-8), AES);IvParameterSpec ivSpec new IvParameterSpec(aesIv.getBytes(UTF-8));cipher.init(Cipher.DECRYPT_MODE, keySpec, ivSpec);// 解密并按照UTF-8编码返回字符串return new String(cipher.doFinal(string), UTF-8);}private byte[] xorBytes(byte[] str1, byte[] str2) {byte[] result new byte[str1.length];for (int i 0; i str1.length; i) {result[i] (byte) (str1[i] ^ str2[i]);}return result;}private byte[] sha1(String input) {try {java.security.MessageDigest digest java.security.MessageDigest.getInstance(SHA-1);return digest.digest(input.getBytes());} catch (Exception e) {throw new RuntimeException(e);}}private byte[] hexToBytes(String hex) {int len hex.length();byte[] data new byte[len / 2];for (int i 0; i len; i 2) {data[i / 2] (byte) ((Character.digit(hex.charAt(i), 16) 4) Character.digit(hex.charAt(i 1), 16));}return data;}private String bytesToHex(byte[] bytes) {StringBuilder sb new StringBuilder();for (byte b : bytes) {sb.append(String.format(%02x, b));}return sb.toString();}public static void main(String[] args) throws Exception {// Example usageNavicatPassword navicatPassword new NavicatPassword(12);// DecryptString decode navicatPassword.decrypt(xxxxx);System.out.println(decode);}}
http://www.tj-hxxt.cn/news/138344.html

相关文章:

  • 哪些公司网站做的好怎么做一元购网站
  • 网站后台asp源码福鼎市建设局网站
  • 一台电脑主机做网站崇左网站建设公司
  • 网站开发对比特点广告设计适合什么人学
  • 海门市规划建设局网站主题资源网站制作平台
  • 北海网站制作公司班级网站源码
  • 电子商务网站主要功能长沙公司做网站的价格
  • 做网站维护挣钱吗动漫网站开发毕业设计
  • 个人小程序怎么赚钱上海网站排名优化
  • 有没有做公司网站的前端如何做能切换语言的网站
  • 找人建个网站多少钱wordpress如何装修
  • 住房和城乡建设部网站统计拍摄企业宣传片哪家好
  • 南宁致峰网站建设怎么做自己网站
  • 问政东营南京seo新浪
  • wordpress4.9邮件发送网站建设以及seo
  • app优化网站wordpress固定链接精简
  • 深圳牌申请网站空间成都公司注册核名官网
  • 淘客招商网站选品库建设速升网网站是多少钱
  • 如何 做网站挣钱wordpress面板
  • 宁夏免费做网站物业公司网站建设策划书
  • 郑州网站建设tpywlkj页面设计简称
  • 网站建设 服务条款电脑版 做网站尺寸
  • 怎么做网页制作网站模板自己注册公司需要什么资料
  • 做一个论坛网站要多少钱响应式旅游网站模板
  • 青海省建设局网站厦门门户网站制作服务商
  • 网站改版方案模板中国十大搜索引擎排名
  • wordpress 置顶不重复深圳网站seo服务
  • 企业网站内容建设 知乎来一个网站谢谢了
  • 店铺外卖网站怎么做丽水网站建设
  • 公司注册资金可以随便填吗企业网站优化问题