常用的加密解密算法

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 "未通过验证";
    }
}

 

posted @ 2016-06-30 16:13  joe立  阅读(260)  评论(0编辑  收藏  举报