package hello1;

import java.security.MessageDigest;

import java.security.NoSuchAlgorithmException;

public class MdText{

/*

* @Description:TODO(main函数 门)

*

* @param args

*

* @return void

*/

public stativ void main(String[] args){

String s=new String("yunquegongmi");

System.out.println("要加密的字符串为" + s);

System.out.println("已加密的字符串为" + md5(s));

System.out.println("MD5后再加密为" + KL(md5(s)));

System.out.println("MD5再加密后解密为" + jm(KL(md5(s))));

}

/*

* @Description:TODO(进行32位的MD5加密)

*

* @param String inStr 要解密的字符串

*

* @return void

*

* 思路:

* 1.获取到MD5这个对象

* 2.加密

*/

public static String md5(String inStr){

MessageDigest md5=null;

// 1.获取MD5这个对象,获取信息摘要对象

try{

md5=MessageDigest.getInstance("MD5");

}catch(NoSuchAlgorithmException e){

e.printStackTrace();

}

// 2.将字符串对象中的每一个字符转换成一个字符数组——toCharArray()的用法

char[] charArray = inStr.tiCharArray();

// 3.定义一个长度和char数组相同的byte字节数组

byte[] byteArray = new byte[charArray.length];

// 4.将char数组中的内容放到byte数组中

for(int i=0;i

// {} for{} if{} 里面的代码只有一行的时候 {}可以省略

byteArray[i] = (byte)charArray[i];

}

// 5.md5这个对象 对字节数组进行摘要 得到一个摘要字节数组

byte[] md5Bytes = md5.digest(byteArray);

// 6.把摘要字节数组中的每一个字节转换成16进制 并且拼在一起就得到了MD5值

// StringBuffer:对字符串进行操作 操作字符串的一个工具箱

StringBuffer hexValue=new StringBuffer();

for(int i=0;i

// 转换成16进制 int 整数型

int val=((int)md5Bytes[i]) & 0xff;

// 如果生成的数字未满32位,需要在前面补0

if(val<16){

hexValue.append("0");

// Integer.toHexString(val) 将其转为16进制的方法

hexValue.append(Integer.toHexString(val));

}

}

return hexValue.toString();

}

// 可逆的加密算法 加盐加密

/*

* @Description:TODO(可逆的加密算法 加盐加密)

*

* @param String inStr 要加密的字符串

*

* @return String

*/

public static String KL(String inStr){

// 将字符串转换成一个字符数组 给每个字符加密

char[] charArray = inStr.toCharArray();

for(int i=0;i

/*

* ^ 异或运算符 如果a[i],'t'两个值不相同 异或结果就为1 如果相同的话就为0

*/

charArray[i] = (char) (charArray[i] ^ 't');

}

String s = new String(charArray);

return s;

}

// MD5加密以后 他会生成不同的字符串 不能反编译

/*

*@Description:TODO(反编译)

*

*@param String inStr 要解密的字符串

*

*@return String

*/

public static String jm(Stirng inStr){

// 将字符串转换成为一个字符数组,给每一个字符进行解密

char[] charArray = inStr.toCharArray();

for(int i=0;i

charArray[i] = (char)(charArray[i] ^ 't');

}

String k=new String(charArray);

return k;

}

}

java 反译md5加密_Java MD5加密与反编译相关推荐

  1. java md5 签名_java md5签名

    签名算法 将所有请求参数(key,value 为一组),对数据结构按照 key 的升序,重新排序, 需要对 null 值进行过滤,需要将 boolean 型进行转换为 1 和 0 将排序后参数组合为新 ...

  2. java 解密后为空_java RSA加密解密

    该工具类中用到了BASE64,需要借助第三方类库:javabase64-1.3.1.jar注意:RSA加密明文最大长度117字节,解密要求密文最大长度为128字节,所以在加密和解密的过程中需要分块进行 ...

  3. 用java实现字符串的加密_JAVA 字符串加密、密码加密实现方法

    在我们的程序设计中,我们经常要加密一些特殊的内容,今天总结了几个简单的加密方法,分享给大家! 如何用java实现字符串简单加密解密?为保证用户信息安全,系统在保存用户信息的时候,务必要将其密码加密保存 ...

  4. java string 加密_java字符串加密解密

    java字符串加密解密 try { String test = "123456789@fdj.com"; EncryptionDecryption des = new Encryp ...

  5. java字符串加密_Java简单加密字符串

    1 设计思想 该问题要求输入一个字符串,然后把这个字符串的每一个字符加4,得到新的字符串. 我们设计一个函数,传入参数sring str,首先我们利用String类的方法toCharArray() 把 ...

  6. java exchange 数字证书认证_java处理加密文件---数字证书文件格式(cer和pfx)的区别 - 数安时代(GDCA)SSL证书官网...

    java处理加密文件中常见的两种数字证书文件格式(cer和pfx) 数字证书文件格式(cer和pfx)的区别 1.带有私钥的证书 由Public Key Cryptography Standards ...

  7. java 如何转化成机器指令_Java代码到底是如何编译成机器指令的

    白衣染霜花 编译器把一种语言规范转化为另一种语言规范的这个过程需要哪些步骤?回答这个问题需要参照<编译原理>,总结过程如下:        1)词法分析:读取源代码,一个字节一个字节的读进 ...

  8. java ldap添加用户名密码_java ldap用户密码md5加密

    在这里不过多介绍ldap,因为这样的文章特别多,这里就简单直接的记录这一个问题. 在springboot中通过引入spring-boot-starter-data-ldap,使用LdapTemplat ...

  9. java md5加密解密_java MD5加密解密 | 学步园

    package com.md5; /** * @author 作者 E-mail: chenshaohua2012@126.com * @version 创建时间:2012-11-6 下午3:29:4 ...

  10. java绕过加密密码_JAVA中使用MD5加密实现密码加密

    1.新建Md5.java package com.loger.md5; import java.io.UnsupportedEncodingException; import java.securit ...

最新文章

  1. 【shell】创建长目录,目录存在则忽略,缺失则创建
  2. windows链接Linux的pgsql,postgreSQL在CMD里怎么连接
  3. python 让系统不识别转义字符 print的时候直接输出
  4. [原创].怎样制作一个简单ip,以方便在Quartus II和Nios II中使用?
  5. RDLC报表系列(二) 行分组
  6. SAP 电商云 Spartacus UI 4.1 版本的延迟加载技术介绍
  7. 服务器t4卡在哪个位置,英特尔(Intel )X710-T4融合网络适配器4口万兆X710T4服务器网卡...
  8. python爬取今日头条的文章_Python3爬取今日头条有关《人民的名义》文章
  9. 四路智能抢答器电子系统综合设计
  10. dependency-check-maven安全漏洞扫描工具介绍
  11. 视频信号数字光纤传输 光纤传输让高清视频传输更简单
  12. codeforces 1728E
  13. 工作一周年,带你认识杭州最好的电商公司
  14. candence的图纸大小设置_关于无法修改图纸大小的问题
  15. 基于 Vue 2.0 的 UI 组件库 KUI for Vue
  16. VSCode 代码换行快捷键设置为Shift + Enter
  17. 时寒冰:中国房价下跌序幕刚刚拉开
  18. 优雅的使用MacBook(一些小技巧,你不会知道的)
  19. 艾美捷游离维多珠单抗ADA水平检测试剂盒,高灵敏度检测
  20. vue后端返回数据流 前端导出下载xls文件

热门文章

  1. 扫地机器人不取出水箱可以吗_小米扫地机器人水箱不出水是怎么回事
  2. 全志平台速鼎模块的BT调试记录
  3. 绩效打c被开除,员工将新东方告上法院,获赔416000元!
  4. Informatic中如何设置每月初,和每周五、周六跑批
  5. C#窗体-个人简历生成(自己设计并编写一个 Windows 应用程序,要求用到TextBox、GroupBox、RadioButton )
  6. JAVA将多个Pdf合并成一个Pdf
  7. 五笔字型初学者常见问题答疑
  8. 数学建模工具篇(一)-LaTeX软件入门
  9. windows清理C盘
  10. abb限位开关已打开drv1_ABB机器人常见故障处理