`

6位MD5加密解密

 
阅读更多
package com.test;

import java.io.UnsupportedEncodingException;
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;
import java.util.Date;

public class Test {
	private static final String password = "111111";
	/**
	 * @author lilin
	 * @date 2011-8-13 上午11:21:38
	 * @Title: main
	 * @param @param args
	 * @return void
	 */
	private static final char code[] = { '1', '2', '3', '4', '5', '6' };

	public static void main(String[] args) {
		Test md5Obj = new Test();
		// MD5加密对象
		String md5Password = md5Obj.getMD5ofStr(password);
		// 把这个认为我要找到的经过加密的密码
		System.out.println("密码破测试中!");
		System.out.println("明文是:" + password);
		System.out.println("密文是:" + md5Password);
		System.out.println("程序时间计时器!");
		System.out.println("开始时间:" + new Date());
		Md5_6(md5Password);
		// 依次调用6位破解到20位破解..
		// Md5_7(testResult);
		System.out.println("结束时间:" + new Date());
	}

	/**
	 * 六位密码破解
	 */
	public static void Md5_6(String md5Password) {
		String testPassword;
		Test md5Obj = new Test();
		String result;
		for (int a = 0; a < code.length; a++) {
			testPassword = "";
			testPassword += code[a];
			for (int b = 0; b < code.length; b++) {
				testPassword = testPassword.substring(0, 1);
				testPassword += code[b];
				for (int c = 0; c < code.length; c++) {
					testPassword = testPassword.substring(0, 2);
					testPassword += code[c];
					for (int d = 0; d < code.length; d++) {
						testPassword = testPassword.substring(0, 3);
						testPassword += code[d];
						for (int e = 0; e < code.length; e++) {
							testPassword = testPassword.substring(0,

							4);
							testPassword += code[e];
							for (int f = 0; f < code.length; f++) {
								testPassword =

								testPassword.substring(0, 5);
								testPassword += code[f];
								result = md5Obj.getMD5ofStr

								(testPassword);
								if (md5Password.equals(result)) {
									System.out.println("密码已经破解!");
									System.out.println("明文是:" + testPassword);
									System.out.println("密文是:" + md5Password);
									return;
								}
							}
						}
					}
				}
			}
		}
	}

	/**
	 * MD5 加密
	 */
	private String getMD5ofStr(String str) {
		MessageDigest messageDigest = null;

		try {
			messageDigest = MessageDigest.getInstance("MD5");

			messageDigest.reset();

			messageDigest.update(str.getBytes("UTF-8"));
		} catch (NoSuchAlgorithmException e) {
			System.out.println("NoSuchAlgorithmException caught!");
			System.exit(-1);
		} catch (UnsupportedEncodingException e) {
			e.printStackTrace();
		}

		byte[] byteArray = messageDigest.digest();

		StringBuffer md5StrBuff = new StringBuffer();

		for (int i = 0; i < byteArray.length; i++) {
			if (Integer.toHexString(0xFF & byteArray[i]).length() == 1)
				md5StrBuff.append("0").append(
						Integer.toHexString(0xFF & byteArray[i]));
			else
				md5StrBuff.append(Integer.toHexString(0xFF & byteArray[i]));
		}

		return md5StrBuff.toString();
	}

}

 

分享到:
评论

相关推荐

    MD5编码、MD5加密解密demo

    在描述中提到的"MD5加密解密demo",实际上MD5并不具备可逆的加密特性。MD5是一个单向函数,即给定任意输入,可以很容易地计算出固定的输出(摘要),但无法根据输出反推出原始输入。因此,我们通常不会说"MD5解密",...

    C# .net MD5加密解密工具及加密解密类

    C# .net MD5加密解密工具及加密解密类。使用方便,可直接下载加密解密代码在项目中使用。

    C#md5加密解密

    C#编写的md5加密解密,含调用例子.有需要的朋友请下载使用

    android用MD5加密解密demo

    本Demo主要展示了如何在Android平台上进行MD5加密和解密操作。 MD5并不是一种加密算法,而是一种散列函数,它将任意长度的数据转化为固定长度的输出。由于MD5的特性,相同的输入会产生相同的输出,因此常用于密码...

    java实现md5 加密解密

    java实现md5 加密解密(在网络中MD5是著名的不可逆算法,但是如果知道MD5的加密的字符串 则可以通过自己的加密算法对明文进行加密,对加密后的密文与字符串匹配; 匹配成功,表示找到明文;但是此程序的时间耗费较高!仅...

    MD5加密解密生成器

    提供MD5最新加密解密等功能 1.MD5加密 加密时请输入明文,软件会自动加密,点击密码后会自动辅助 2.MD5解密 Md5解密加密专家支持以下类型的解密: md5、md5(md5($pass))、md5(md5(md5($pass)))、MD5(MD5...

    MD5加密解密工具

    MD5加密解密工具,MD5加密解密工具,MD5加密解密工具,MD5加密解密工具

    java实现MD5加密解密算法

    java实现MD5加密解密算法,java源代码~

    MD5的加密解密c#代码

    MD5加密解密工具,就我所知,MD5的目标是生成摘要。严格来说不是一种加密算法。 不管多长的信息都能生成固定长度的MD5编码的话,必然会有信息丢失。那么光有MD5编码的话是绝对不可能还原信息的。 那网上那些MD5解密...

    md5加密解密js文件

    用于md5加密解密,详细使用方法链接:https://blog.csdn.net/qq_35713752/article/details/81904958

    MD5.rar_MD5 加密 解密_MD5加密解密_md5 加密解密_数据加密

    MD5加密算法 实现数据的加密,解密。保障数据的安全

    MD5 加密解密例子

    MD5(Message-Digest Algorithm 5)是一种广泛使用的哈希函数,主要应用于数据的校验和加密场景。在IT行业中,MD5常被用来确保数据的完整性和安全性,尤其是在存储密码时,通常会将原始密码转化为MD5哈希值进行存储...

    Md5加密解密

    Md5加密解密

    加密和解密(MD5)

    MD5,全称为Message-Digest Algorithm 5,是一种广泛使用的哈希函数,设计用于生成一个固定长度(128位)的摘要值,通常表示为32位的十六进制字符串。在C#中,MD5常用于数据的校验和加密,尽管它已不再被认为适合...

    c#,.net md5加密解密技术

    本文将详细介绍MD5加密算法的工作原理、C#中的MD5实现以及如何进行加密解密操作。 MD5算法简介: MD5是由美国计算机科学家Ronald Rivest设计的一种强哈希函数,它将任意长度的输入(又叫做预映射)通过一系列的数学...

    delphi加密解密文件MD5

    本教程将深入探讨如何在Delphi中使用MD5进行文件的加密和解密。 MD5(Message-Digest Algorithm 5)是一种广泛使用的哈希函数,能够将任意长度的数据转化为固定长度的摘要信息。在文件加密中,MD5通常用于生成文件...

    基于JAVA的MD5加密解密实现

    纯JAVA的MD5加密,利用MD5单向函数产生密钥,方便测试

    java常用类-MD5加密与DES加密解密

    java中常用的工具类,用于MD5的加密,里面还有切割了MD5加密的长度,有DES加密与解密,并且配有main函数可测试,可以根据自己的实际情况使用main函数测试使用

    微信小程序 MD5 AES SHA 加密解密

    本文将详细介绍如何在微信小程序中实现MD5、AES(EBC模式)的加解密操作。 **MD5(Message-Digest Algorithm 5)** MD5是一种广泛使用的哈希函数,它可以将任意长度的数据转化为固定长度的128位(16字节)摘要。MD5...

    MD5算法的ASP实现,MD5简介,MD5加密解密vb工程

    而"DES加密解密"虽然与MD5不直接相关,但DES(Data Encryption Standard)也是一种常用的加密算法,可能会作为对比或者补充出现在文档中,介绍传统的对称加密技术。 总的来说,这个压缩包内容对于理解和使用MD5在...

Global site tag (gtag.js) - Google Analytics