91名师指路-头部
91名师指路

使用Hutool的RSA工具类进行封装来自定义实现公钥和私钥

由于某些原因,现在不支持支付宝支付,如需要购买源码请加博主微信进行购买,微信号:13248254750

一:引入pom

<dependency>
<groupId>cn.hutool</groupId>
<artifactId>hutool-all</artifactId>
<version>5.7.5</version>
</dependency>


二:RSA工具类如下

package com.mszl.utils;

import cn.hutool.core.codec.Base64;
import cn.hutool.crypto.SecureUtil;
import cn.hutool.crypto.asymmetric.KeyType;
import cn.hutool.crypto.asymmetric.RSA;
import lombok.extern.slf4j.Slf4j;
import java.security.KeyPair;
import java.security.PrivateKey;
import java.security.PublicKey;

@Slf4j
public class RSAUtils {

public static final String ENCRYPT_TYPE = "RSA";

/**
* 公钥加密
* @param content 要加密的内容
* @param publicKey 公钥
*/
public static String encrypt(String content, String publicKey) {
try{
RSA rsa=new RSA(null,publicKey);
return rsa.encryptBase64(content, KeyType.PublicKey);
} catch (Exception e){
e.printStackTrace();
}
return null;
}

/**
* 私钥解密
* @param content 要解密的内容
* @param privateKey 私钥
*/
public static String decrypt(String content, String privateKey) {
try {
RSA rsa=new RSA(privateKey,null);
return rsa.decryptStr(content, KeyType.PrivateKey);
} catch (Exception e){
e.printStackTrace();
}
return null;
}

/**
* 生成公钥私钥
*/
public static void main(String[] args) {
try {
KeyPair pair=SecureUtil.generateKeyPair(ENCRYPT_TYPE);
PrivateKey privateKey=pair.getPrivate();
PublicKey publicKey=pair.getPublic();
// 获取 公钥和私钥 的 编码格式(通过该 编码格式 可以反过来 生成公钥和私钥对象)
byte[] pubEncBytes=publicKey.getEncoded();
byte[] priEncBytes=privateKey.getEncoded();
// 把公钥和私钥的编码格式转换为Base64文本
String pubEncBase64=Base64.encode(pubEncBytes);
String priEncBase64=Base64.encode(priEncBytes);
log.info("公钥: {}", pubEncBase64);
log.info("私钥: {}", priEncBase64);
} catch (Exception e){
e.printStackTrace();
}
}


}


参考资料:

https://www.hutool.cn/docs/#/crypto/%E9%9D%9E%E5%AF%B9%E7%A7%B0%E5%8A%A0%E5%AF%86-AsymmetricCrypto?id=%e4%bb%8b%e7%bb%8d

https://blog.csdn.net/weixin_39832308/article/details/106923108?utm_medium=distribute.pc_aggpage_search_result.none-task-blog-2~aggregatepage~first_rank_ecpm_v1~rank_aggregation-1-106923108.pc_agg_rank_aggregation&utm_term=hutool+rsa+%E8%A7%A3%E5%AF%86&spm=1000.2123.3001.4430



2021-10-20 09:17:51     阅读(2538)

名师出品,必属精品    https://www.91mszl.com

联系博主    
用户登录遮罩层
x

账号登录

91名师指路-底部