`
myclover
  • 浏览: 191300 次
  • 性别: Icon_minigender_1
  • 来自: 成都
社区版块
存档分类
最新评论

一个JAVA编写的MD5加密程序

    博客分类:
  • java
阅读更多

package com.myclover.java.test.util;

import java.security.MessageDigest;

/**
 * 
 * 效验地址:http://www.cmd5.com/
 *
 */

public class MD5Password {

	private final static String[] hexDigits = { "0", "1", "2", "3", "4", "5",
			"6", "7", "8", "9", "a", "b", "c", "d", "e", "f" };

	// 十六进制下数字到字符的映射数组

	/** 把inputString加密 */
	public static String createPassword(String inputString) {
		return encodeByMD5(inputString);
	}

	/**
	 * 验证输入的密码是否正确
	 * 
	 * @param password
	 *            真正的密码(加密后的真密码) 和 "一个MD5加密类的例子" 有关的 java 编程小帖士:
	 * 
	 *            strong>Locale.Languages.DUTCH
	 * 
	 *            表示荷兰语。
	 * 
	 *            语法
	 * 
	 *            public static final int DUTCH;
	 * 
	 * @param inputString
	 *            输入的字符串
	 * @return 验证结果,boolean类型
	 */
	public static boolean authenticatePassword(String password,
			String inputString) {
		if (password.equals(encodeByMD5(inputString))) {
			return true;
		} else {
			return false;
		}
	}

	/** 对字符串进行MD5编码 */
	private static String encodeByMD5(String originString) {
		if (originString != null) {
			try {
				// 创建具有指定算法名称的信息摘要
				MessageDigest md = MessageDigest.getInstance("MD5");

				// 使用指定的字节数组对摘要进行最后更新,然后完成摘要计算
				byte[] results = md.digest(originString.getBytes());
				// 将得到的字节数组变成字符串返回
				String resultString = byteArrayToHexString(results);
				return resultString.toUpperCase();
			} catch (Exception ex) {
				ex.printStackTrace();
			}
		}
		return null;
	}

	/**
	 * 轮换字节数组为十六进制字符串
	 * 
	 * @param b
	 *            字节数组
	 * @return 十六进制字符串
	 */
	private static String byteArrayToHexString(byte[] b) {
		StringBuffer resultSb = new StringBuffer();
		for (int i = 0; i < b.length; i++) {
			resultSb.append(byteToHexString(b[i]));
		}
		return resultSb.toString();
	}

	/**
	 * 将一个字节转化成十六进制形式的字符串
	 */
	private static String byteToHexString(byte b) {
		int n = b;
		if (n < 0)
			n = 256 + n;
		int d1 = n / 16;
		int d2 = n % 16;
		return hexDigits[d1] + hexDigits[d2];
	}

	public static void main(String[] args) {
		String password = MD5Password.createPassword("testMD5");
		System.out.println("对testMD5用MD5摘要后的字符串:" + password);
		System.out.println(password.equalsIgnoreCase("488d3d6f63d713b8525ada7c75d25d7b"));
		String inputString = "MD5Test";
		System.out.println("MD5Test与密码匹配?"
				+ MD5Password.authenticatePassword(password, inputString));
		inputString = "testMD5";
		System.out.println("testMD5与密码匹配?"
				+ MD5Password.authenticatePassword(password, inputString));
	}

}


分享到:
评论

相关推荐

    MD5加密程序java代码.rar_MD5 JAVA_java md5_md5

    一个由java语言编写的MD5加密算法的实现.

    用java语言编写的MD5加密

    用JAVA语言编写根据MD5算法编写的字符串加密程序

    java编写的MD5加密类

    编写java时在进行用户身份验证时密码项厂要求进行加密解密,本程序利用MD5进行加解密

    JAVA编写的加密解密聊天工具

    本实验应用DES,RSA,MD5 等加密算法,以及Socket 套接字实现一个简单的加密解密的聊天工具CryptTalk。本实验的程序在jdk1.6 与Eclipse 开发环境下编写,基本实现了 消息加密的聊天工具的功能。通信的步骤基本如下:...

    java-des加密解密程序

    java-des加密解密程序,基于java编写的des,3des加密程序,包括MAC校验,MD5校验等

    常见的加密算法实现源码分享-Java语言编写

    常见的加密算法实现--Java语言编写,花费一个多月认真整理出来的可直接运行的源码文件。下载RAR文件后,对压缩包进行解压后,里面有详细的例子,导入IDEA或者ECLIPSE后,运行指定的Java文件,即可以直接使用。压缩包...

    java开源包5

    Blister是一个用于操作苹果二进制PList文件格式的Java开源类库(可用于发送数据给iOS应用程序)。 重复文件检查工具 FindDup.tar FindDup 是一个简单易用的工具,用来检查计算机上重复的文件。 OpenID的Java客户端...

    java开源包7

    Blister是一个用于操作苹果二进制PList文件格式的Java开源类库(可用于发送数据给iOS应用程序)。 重复文件检查工具 FindDup.tar FindDup 是一个简单易用的工具,用来检查计算机上重复的文件。 OpenID的Java客户端...

    JAVA上百实例源码以及开源项目

     用JAVA编写了一个小工具,用于检测当前显示器也就是显卡的显示模式,比如分辨率,色彩以及刷新频率等。 Java波浪文字制作方法及源代码 1个目标文件 摘要:Java源码,初学实例,波浪文字  Java波浪文字,一个利用...

    JAVA上百实例源码以及开源项目源代码

     用JAVA编写了一个小工具,用于检测当前显示器也就是显卡的显示模式,比如分辨率,色彩以及刷新频率等。 Java波浪文字制作方法及源代码 1个目标文件 摘要:Java源码,初学实例,波浪文字  Java波浪文字,一个利用...

    java开源包4

    Blister是一个用于操作苹果二进制PList文件格式的Java开源类库(可用于发送数据给iOS应用程序)。 重复文件检查工具 FindDup.tar FindDup 是一个简单易用的工具,用来检查计算机上重复的文件。 OpenID的Java客户端...

    java开源包11

    Blister是一个用于操作苹果二进制PList文件格式的Java开源类库(可用于发送数据给iOS应用程序)。 重复文件检查工具 FindDup.tar FindDup 是一个简单易用的工具,用来检查计算机上重复的文件。 OpenID的Java客户端...

    java开源包6

    Blister是一个用于操作苹果二进制PList文件格式的Java开源类库(可用于发送数据给iOS应用程序)。 重复文件检查工具 FindDup.tar FindDup 是一个简单易用的工具,用来检查计算机上重复的文件。 OpenID的Java客户端...

    java开源包9

    Blister是一个用于操作苹果二进制PList文件格式的Java开源类库(可用于发送数据给iOS应用程序)。 重复文件检查工具 FindDup.tar FindDup 是一个简单易用的工具,用来检查计算机上重复的文件。 OpenID的Java客户端...

    java开源包101

    Blister是一个用于操作苹果二进制PList文件格式的Java开源类库(可用于发送数据给iOS应用程序)。 重复文件检查工具 FindDup.tar FindDup 是一个简单易用的工具,用来检查计算机上重复的文件。 OpenID的Java客户端...

    java swing 图书管理系统

    这是自己做的一个课程设计,系统界面是采用Java swing编写的,项目开发环境是Windows10,JDK1.8,开发软件eclipse-windowbuider插件,MySQL数据库,该系统采用C/S结构设计,主要由图书类别管理和图书管理两大功能...

    ToolsFx密码学工具箱-Java语言编写,是爬虫工程师的好用工具

    软件是用Java语言编写的,要运行该软件,需要安装JDK环境。安装好JDK环境后,直接运行解压目录下的ToolsFx .bat文件,即可以进入密码工具箱的主界面进行使用。 消息摘要算法: RSA-MD4、RSA-MD5、RSA-MDC2、RSA-...

    java开源包8

    Blister是一个用于操作苹果二进制PList文件格式的Java开源类库(可用于发送数据给iOS应用程序)。 重复文件检查工具 FindDup.tar FindDup 是一个简单易用的工具,用来检查计算机上重复的文件。 OpenID的Java客户端...

    java开源包10

    Blister是一个用于操作苹果二进制PList文件格式的Java开源类库(可用于发送数据给iOS应用程序)。 重复文件检查工具 FindDup.tar FindDup 是一个简单易用的工具,用来检查计算机上重复的文件。 OpenID的Java客户端...

    java开源包1

    Blister是一个用于操作苹果二进制PList文件格式的Java开源类库(可用于发送数据给iOS应用程序)。 重复文件检查工具 FindDup.tar FindDup 是一个简单易用的工具,用来检查计算机上重复的文件。 OpenID的Java客户端...

Global site tag (gtag.js) - Google Analytics