package com.dayu.qiheonlinelibrary.net; import java.nio.charset.StandardCharsets; import java.security.KeyFactory; import java.security.PublicKey; import java.security.spec.X509EncodedKeySpec; import javax.crypto.Cipher; /** * author: zuo * Date: 2024-07-29 * Time: 14:38 * 备注:RSA加密工具类 */ public class RSAUtile { public static byte[] encryptByPublicKey(String data, String publicKey) throws Exception { // 得到公钥 X509EncodedKeySpec keySpec = new X509EncodedKeySpec(publicKey.getBytes(StandardCharsets.UTF_8)); KeyFactory kf = KeyFactory.getInstance("RSA"); PublicKey keyPublic = kf.generatePublic(keySpec); // 加密数据 Cipher cp = Cipher.getInstance("RSA/ECB/PKCS1Padding"); cp.init(Cipher.ENCRYPT_MODE, keyPublic); return cp.doFinal(data.getBytes(StandardCharsets.UTF_8)); } }