用SecureUtil生成RSA公钥私钥以及加密数据

<dependency>
    <groupId>cn.hutoolgroupId>
    <artifactId>hutool-allartifactId>
    <version>5.7.9version>
dependency>
package com.kakarote.admin.common;

import cn.hutool.crypto.SecureUtil;
import cn.hutool.crypto.asymmetric.KeyType;
import org.apache.commons.codec.binary.Base64;
import java.security.KeyPair;

/**
 * 
 * xxxx CRM注册序列号生成器 
 */

public class RSAUtil {

    private static final String publicKey;
    private static final String privateKey;

    static {
        KeyPair pair = SecureUtil.generateKeyPair("RSA");
        publicKey = new String(Base64.encodeBase64(pair.getPublic().getEncoded()));
        privateKey= new String(Base64.encodeBase64((pair.getPrivate().getEncoded())));
    }

    /**
     *
     * @param str 加密前JSONObject->Str数据
     * @return 返回加密后数据
     */
    public static String encrypt(String str){
        return SecureUtil.rsa(privateKey,publicKey).encryptBcd(str, KeyType.PrivateKey);
    }

    /**
     *
     * @param str 加密后的字符串
     * @return
     */
    public static String decrypt (String str){
        return SecureUtil.rsa((String) null,publicKey).decryptStrFromBcd(str, KeyType.PublicKey);
    }

    public static void main(String[] args) {
        System.out.println("私钥:" + privateKey);
        /**
         * 公钥替换 AdminConst中 userPublicKey
         */
        System.out.println("公钥:" + publicKey);
        /**
         * 只能传入 JSONObject转String格式,具体传什么值不清楚
         * 加密的值为序列号 encryptStr 可以通过注册,总之随便填
         */
        String encryptStr = encrypt("{\"info\":\"admin\"}");

       // String decryptStr = decrypt(encryptStr);

        System.out.println("序列号:" + encryptStr);
    }
}

你可能感兴趣的:(CRM,RSA,java,spring,spring,cloud,alibaba)