java实现MD5加密和解密全过程

 更新时间:2025年12月22日 09:59:00   作者:?abc!  
Java可以实现MD5加密,但无法解密,有一些网站提供MD5解密服务,但没有找到Java实现解密的方法,作者探索了其他可逆加密解密方法,可以实现一次加密,二次调用解密

java实现MD5加密和解密

java没有实现MD5解密操作,但是有些网站可以完成解密。

也可以使用其他方法进行可逆的加密解密操作。

加密解密

package com.yy.utils;

import java.math.BigInteger;
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;

public class MD5Utils {
	/**
	 * 使用md5的算法进行加密
	 */
	public static String md5(String plainText) {
		byte[] secretBytes = null;
		try {
			secretBytes = MessageDigest.getInstance("md5").digest(
					plainText.getBytes());
		} catch (NoSuchAlgorithmException e) {
			throw new RuntimeException("没有md5这个算法!");
		}
		String md5code = new BigInteger(1, secretBytes).toString(16);// 16进制数字
		// 如果生成数字未满32位,需要前面补0
		for (int i = 0; i < 32 - md5code.length(); i++) {
			md5code = "0" + md5code;
		}
		return md5code;
	}

	/**
	 * 可逆的的加密解密方法;两次是解密,一次是加密
	 * @param inStr
	 * @return
	 */
	public static String convertMD5(String inStr){

		char[] a = inStr.toCharArray();
		for (int i = 0; i < a.length; i++){
			a[i] = (char) (a[i] ^ 't');
		}
		String s = new String(a);
		return s;

	}

	

	public static void main(String[] args) {
		String s = md5("1234");
		System.out.println("MD5后:"+s);
		System.out.println("MD5后再加密:"+convertMD5(s));
		System.out.println("MD5加密后解密:"+convertMD5(convertMD5(s)));
		String s2 = convertMD5("12345");
		System.out.println("可逆的加密解密方法之加密:"+s2);
		System.out.println("可逆的加密解密方法之解密:"+convertMD5(s2));
	}

}

运行结果

总结

要想实现MD5的加密是可以实现的,解密的话截止博客发布时间之前,我目前只找到有md5解密的网站进行解密,没有发现怎么实现解密。

因此,我又找到了另一个可以实现解密和解密操作的方法,可以实现一次是加密,二次调用就是解密的操作

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • 面试必时必问的JVM 类加载机制详解

    面试必时必问的JVM 类加载机制详解

    这篇文章主要介绍了一文读懂Jvm类加载机制,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2021-08-08
  • Spring Boot场景启动器(Starters)从入门到精通

    Spring Boot场景启动器(Starters)从入门到精通

    本文给大家介绍Spring Boot场景启动器(Starters)完全指南:从入门到精通,本文结合实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧
    2025-10-10
  • Java中的Spring Security配置过滤器

    Java中的Spring Security配置过滤器

    这篇文章主要介绍了Java中的Spring Security配置过滤器,文章通过围绕文章主题的相关资料展开详细内容介绍,具有一定的参考价值,需要的小伙伴可以参考一下
    2022-05-05
  • Java多线程:生产者与消费者案例

    Java多线程:生产者与消费者案例

    这篇文章主要介绍了Java并发编程中的生产者与消费者模型简述,多线程并发是Java编程中最终要的部分之一,需要的朋友可以参考下,希望能给你带来帮助
    2021-07-07
  • Spring-cloud Config Server的3种配置方式

    Spring-cloud Config Server的3种配置方式

    这篇文章主要介绍了Spring-cloud Config Server的3种配置方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-09-09
  • java实现在pdf模板的指定位置插入图片

    java实现在pdf模板的指定位置插入图片

    这篇文章主要为大家详细介绍了java如何实现在pdf模板的指定位置插入图片,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-10-10
  • java线程池参数举例详解(附详细代码)

    java线程池参数举例详解(附详细代码)

    这篇文章主要介绍了Java线程池的工作原理、构造方法和关键参数,它还提供了线程池的工作流程、常用线程池实现及参数优化建议,帮助开发者更好地管理和优化线程池,需要的朋友可以参考下
    2025-02-02
  • SpringBoot应用启动失败:端口占用导致Tomcat启动失败的问题分析与解决方法

    SpringBoot应用启动失败:端口占用导致Tomcat启动失败的问题分析与解决方法

    在开发和运维过程中,应用程序启动失败是我们经常遇到的一个问题,尤其是在 Web 应用程序中,涉及到 Web 服务器的配置时,今天我们将探讨一个常见的启动错误,尤其是在使用 Spring Boot 和内嵌 Tomcat 服务器时,需要的朋友可以参考下
    2024-11-11
  • JAVA时间日期处理类实例

    JAVA时间日期处理类实例

    这篇文章主要介绍了JAVA时间日期处理类,可实现遍历两个日期之间的每一天的功能,涉及针对日期的常见操作技巧,需要的朋友可以参考下
    2015-04-04
  • Java函数式编程(六):Optional

    Java函数式编程(六):Optional

    这篇文章主要介绍了Java函数式编程(六):Optional,本文是系列文章的第6篇,其它文章请参阅本文底部的相关文章,需要的朋友可以参考下
    2014-09-09

最新评论