MD5&SHA加密util类(Java)

package com.arui.util;
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;
public class EncryptUtils {
	/**
	 * Encrypt string using MD5 algorithm
	 */
	public final static String encryptMD5(String source) {
		if (source == null) {
			source = "";
		}
		String result = "";
		try {
			result = encrypt(source, "MD5");
		} catch (NoSuchAlgorithmException ex) {
			// this should never happen
			throw new RuntimeException(ex);
		}
		return result;
	}
	/**
	 * Encrypt string using SHA algorithm
	 */
	public final static String encryptSHA(String source) {
		if (source == null) {
			source = "";
		}
		String result = "";
		try {
			result = encrypt(source, "SHA");
		} catch (NoSuchAlgorithmException ex) {
			// this should never happen
			throw new RuntimeException(ex);
		}
		return result;
	}
	/**
	 * Encrypt string
	 */
	private final static String encrypt(String source, String algorithm)
			throws NoSuchAlgorithmException {
		byte[] resByteArray = encrypt(source.getBytes(), algorithm);
		return toHexString(resByteArray);
	}
	/**
	 * Encrypt byte array.
	 */
	private final static byte[] encrypt(byte[] source, String algorithm)
			throws NoSuchAlgorithmException {
		MessageDigest md = MessageDigest.getInstance(algorithm);
		md.reset();
		md.update(source);
		return md.digest();
	}
	/**
	 * Get hex string from byte array
	 */
	private final static String toHexString(byte[] res) {
		StringBuffer sb = new StringBuffer(res.length << 1);
		for (int i = 0; i < res.length; i++) {
			String digit = Integer.toHexString(0xFF & res[i]);
			if (digit.length() == 1) {
				digit = '0' + digit;
			}
			sb.append(digit);
		}
		return sb.toString().toUpperCase();
	}
}
 


原文链接: http://blog.csdn.net/arui319/article/details/5771804

你可能感兴趣的:(MD5&SHA加密util类(Java))