H3C IMC MSSQL数据库的密文的解密过程
来源:互联网 发布:psv如何重构数据库 编辑:程序博客网 时间:2024/05/22 12:51
操作前提:
获得数据库密文,对IMC的程序目录有直接可读权限;
如果你有其它方式获得密文也可以。
我这里以先有服务器权限举例。在IMC的安装目录下找到文件名为“dma.conf”内容如下图
密文格式:
-xx-xx-xx-xx-xx-xx-xx-xx (xx为整数)
没见过的密文格式,百度无果。
打包下载了所有的*.jar文件到本地,反编译查看加密/解密算法
以下是解密算法,以密文 -97-110-94 为例,
private static String decrypt(String et){if (!et.startsWith(“-“)) { //判断密文是否以“-”开头log.error(“Invalid encrypted text: ” + et);return null;}String[] strs = et.substring(1).split(“-“); /*这里把密文以“-”为分隔符分割存放到数组strs[]里,就是只取出每一个“-”之间的整数,即strs[0]=97strs[1]=110strs[2]=94*/byte[] bytes = new byte[strs.length];for (int i = 0; i < strs.length; i++) { //循环从0开始,注意数组下标为0是第一个数组成员,以此类推try {int b = Integer.parseInt(strs[i]) + i * 16 % 256; //这里是算法的核心代码,数组的下标值(i)乘上16取余256再加上第i个数组的值。第一次循环就是0*16%256+97把结果赋给变量b,此时b=97,第二次b=126,第三次b=126if (b > 255) { //整个判断的是如果b>255则把b-256在赋值给b,表达式表示为b=b-256b -= 256;}bytes[i] = ((byte)b); //把整形变量b转换成字节然后存放在上面创建的字节数组bytes[]里} catch (NumberFormatException nfe) {return null;}}String str = new String(bytes); //这里把之前算出来的b,就是存放入bytes[]数组里的数据转换成字符,不知道怎么转换的,参考十进制的ASCII码表,转换之后把结果存放到变量str。举例的结果解密结果为“a~~”if (!str.endsWith(“~~”)) { //最后检查是否以字符“~~”结尾log.error(“Invalid encrypted text: ” + et);return null;}return str.substring(0, str.length() – 2); //把解密后的结果最后两位去掉,去掉“~~”之后的结果就是明文。举例的结果解密结果为“a”}
0 0
- H3C IMC MSSQL数据库的密文的解密过程
- H3C IMC MSSQL部分数据库结构
- MsSql数据库存储过程加密解密
- 悬而未决:MSSQL中存储过程的加密和解密
- H3C iMC用户管理解决方案
- MSSQL数据库嵌套存储过程的事务控制
- MSSQL 取出数据库所有的存储过程语句 PROC
- MSSQL数据库的数据类型
- MSSQL 存储过程加密解密
- 忆龙2009:修改SQL Server数据库sa密码后iMC出现异常问题的解决方法
- 2008 mssql的存储过程
- 关于MSSQL数据库的字段
- mssql数据库碰到的问题解决
- 收集转贴:解密Mssql存储过程
- MSSQL数据库转到FIREBIRD数据库的问题
- 让CIO运筹帷幄 H3C iMC提高运维效率
- H3C正式对外开放iMC接口 打造灵活业务网络
- 菜鸟学Python(17):用pymssql访问mssql数据库的存储过程
- linux下的多种调试方法
- Array
- boost导常使用
- javascript闭包和闭包的几种写法及用途
- android中常用的弹出提示框
- H3C IMC MSSQL数据库的密文的解密过程
- 朴素贝叶斯 Python
- 文件读取
- 面向对象分析和设计(OOA/D)
- PHP函数utf8转gb2312编码
- 转一篇eoe论坛上sfshine大神的文章--AndroidHal底层! ConsumerIrService分析
- 记录重装Win7的心路历程
- Jquery学习之旅之添加元素
- C++输出全排列递归算法详细解释