Java简单使用MD5加密

来源:互联网 发布:机械能守恒实验数据 编辑:程序博客网 时间:2024/05/22 17:48

从网上找到了很多Java使用MD5加密的代码,整理了一下。

package org.ygy.demo;import java.io.UnsupportedEncodingException;import java.security.MessageDigest;import java.security.NoSuchAlgorithmException;public class MD5Util {/** * 将源字符串使用MD5加密为字节数组 * @param source * @return */public static byte[] encode2bytes(String source) {byte[] result = null;try {MessageDigest md = MessageDigest.getInstance("MD5");md.reset();md.update(source.getBytes("UTF-8"));result = md.digest();} catch (NoSuchAlgorithmException e) {e.printStackTrace();} catch (UnsupportedEncodingException e) {e.printStackTrace();}return result;}/** * 将源字符串使用MD5加密为32位16进制数 * @param source * @return */public static String encode2hex(String source) {byte[] data = encode2bytes(source);StringBuffer hexString = new StringBuffer();for (int i = 0; i < data.length; i++) {String hex = Integer.toHexString(0xff & data[i]);if (hex.length() == 1) {hexString.append('0');}hexString.append(hex);}return hexString.toString();}/** * 验证字符串是否匹配 * @param unknown 待验证的字符串 * @param okHex使用MD5加密过的16进制字符串 * @return匹配返回true,不匹配返回false */public static boolean validate(String unknown , String okHex) {return okHex.equals(encode2hex(unknown));}public static void main(String[] args) {String str = MD5Util.encode2hex("今天99");System.out.println("加密后为:" + str);System.out.println("是否匹配:" + MD5Util.validate("今天99" , str));}}