【工具类】MD5加密工具类和RSA加密工具类

MD5工具类(直接上代码):

package com.songzhen.howcool.util;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

import java.security.MessageDigest;

/**
 * MD5加密工具类
 *
 * @author Lucas
 * @version 1.0
 * @date 2018/10/15 17:51
 **/
public class Md5Util {

    private static Logger logger = LoggerFactory.getLogger(Md5Util.class);

    public static String encodeMD5(String source) {

        StringBuffer sb = new StringBuffer(32);

        try {
            MessageDigest md = MessageDigest.getInstance("MD5");
            byte[] array = md.digest(source.getBytes("utf-8"));

            for (int i = 0; i < array.length; i++) {
                sb.append(Integer.toHexString((array[i] & 0xFF) | 0x100).toUpperCase().substring(1, 3));
            }
        } catch (Exception e) {
            logger.error("Can not encode the string '" + source + "' to MD5!", e);
            return null;
        }

        return sb.toString().toUpperCase();
    }

    public static void main(String[] args) {
        //测试
        logger.info(encodeMD5("666666"));
    }

}

 RSA工具类(直接上代码):

package com.songzhen.howcool.util;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

import java.security.KeyFactory;
import java.security.PrivateKey;
import java.security.PublicKey;
import java.security.spec.PKCS8EncodedKeySpec;
import java.security.spec.X509EncodedKeySpec;
import java.util.Base64;

/**
 * RSA工具类
 *
 * @author lucas
 */
public class RSACryptographyUtil {

    private static Logger logger = LoggerFactory.getLogger(RSACryptographyUtil.class);

    /**
     * 将base64编码后的公钥字符串转成PublicKey实例.
     *
     * @author Lucas
     * @date 2019-03-18
     * @param publicKey publicKey
     * @return PublicKey
     */
    public static PublicKey getPublicKey(String publicKey) {
        try {
            byte[] keyBytes = Base64.getDecoder().decode(publicKey.getBytes());
            X509EncodedKeySpec keySpec = new X509EncodedKeySpec(keyBytes);
            KeyFactory keyFactory = KeyFactory.getInstance("RSA");
            return keyFactory.generatePublic(keySpec);
        } catch (Exception e) {
            logger.error("获取PublicKey实例失败:", e);
        }
        return null;
    }

    /**
     * 将base64编码后的私钥字符串转成PrivateKey实例.
     *
     * @author Lucas
     * @date 2019-03-18
     * @param privateKey privateKey
     * @return PublicKey
     */
    public static PrivateKey getPrivateKey(String privateKey) {
        try {
            byte[] keyBytes = Base64.getDecoder().decode(privateKey.getBytes());
            PKCS8EncodedKeySpec keySpec = new PKCS8EncodedKeySpec(keyBytes);
            KeyFactory keyFactory = KeyFactory.getInstance("RSA");
            return keyFactory.generatePrivate(keySpec);
        } catch (Exception e) {
            logger.error("获取PrivateKey实例:", e);
        }
        return null;
    }
}

 

posted @ 2018-11-28 10:45  青取之于蓝  阅读(176)  评论(0编辑  收藏  举报