import java.security.MessageDigest; import java.security.NoSuchAlgorithmException;/*** Java常用的对密码加密的方法 对摘要信息进行加密编码*/ public class PasswordUtil {private final static String[] hexDigits = { "0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "a", "b", "c", "d","e", "f" };/*** 将字节数组转换为16进制的字符串* * @param byteArray* 字节数组* @return 16进制的字符串*/private static String byteArrayToHexString(byte[] byteArray) {StringBuffer sb = new StringBuffer();for (byte byt : byteArray) {sb.append(byteToHexString(byt));}return sb.toString();}/*** 将字节转换为16进制字符串* * @param byt* 字节* @return 16进制字符串*/private static String byteToHexString(byte byt) {int n = byt;if (n < 0)n = 256 + n;return hexDigits[n / 16] + hexDigits[n % 16];}/*** 将摘要信息转换为相应的编码* * @param code* 编码类型* @param message* 摘要信息* @return 相应的编码字符串*/private static String encode(String code, String message) {MessageDigest md;String encode = null;try {md = MessageDigest.getInstance(code);encode = byteArrayToHexString(md.digest(message.getBytes()));} catch (NoSuchAlgorithmException e) {e.printStackTrace();}return encode;}/*** 将摘要信息转换成MD5编码* * @param message* 摘要信息* @return MD5编码之后的字符串*/public static String md5Encode(String message) {return encode("MD5", message);}/*** 将摘要信息转换成SHA编码* * @param message* 摘要信息* @return SHA编码之后的字符串*/public static String shaEncode(String message) {return encode("SHA", message);}/*** 将摘要信息转换成SHA-256编码* * @param message* 摘要信息* @return SHA-256编码之后的字符串*/public static String sha256Encode(String message) {return encode("SHA-256", message);}/*** 将摘要信息转换成SHA-512编码* * @param message* 摘要信息* @return SHA-512编码之后的字符串*/public static String sha512Encode(String message) {return encode("SHA-512", message);}@SuppressWarnings("unused")private String validate(String code, String tag) {if (code.equals(tag))return "通过验证";return "未通过验证";} }