/**
* 飞飞 实现rsa 的非对称加密解密 工具类
*
* @author xiaofeifei
*/
@Slf4j
public final class RSAUtils {
/**
* 加密解密算法
*/
private static final String ALGORITHM = "RSA";
/**
* 1024 bit 生成公钥 私钥
*/
private static final Integer KEY_SIZE_1024 = 1024;
/**
* 2048 bit 生成公钥 私钥
*/
private static final Integer KEY_SIZE_2048 = 2048;
/**
* 默认公钥文件名
*/
private static final String PUBLIC_KEY_FILE = "publicKey";
/**
* 默认私钥文件名
*/
private static final String PRIVATE_KEY_FILE = "publicKey";
/**
* 私有构造器 防止被实例化
*/
private RSAUtils() {
}
/**
* 默认生成密钥对
*
* @author feifei
* @date 2020/10/13 3:14 下午
* @return boolean
*/
public static boolean generateDefaultKey() {
return generateKey(PUBLIC_KEY_FILE, PRIVATE_KEY_FILE, KEY_SIZE_1024);
}
/**
* 生成1024位的密钥对
*
* @param publicKeyOutput 公钥输出路径
* @param privateKeyOutput 私钥输出路径
* @return boolean
* @author feifei
* @date 2020/10/13 3:00 下午
*/
public static boolean generate1024Key(String publicKeyOutput, String privateKeyOutput) {
return generateKey(publicKeyOutput, privateKeyOutput, KEY_SIZE_1024);
}
/**
* 生成2048位的密钥对
*
* @param publicKeyOutput 公钥输出路径
* @param privateKeyOutput 私钥输出路径
* @return boolean
* @author feifei
* @date 2020/10/13 3:00 下午
*/
public static boolean generate2048Key(String publicKeyOutput, String privateKeyOutput) {
return generateKey(publicKeyOutput, privateKeyOutput, KEY_SIZE_2048);
}
/**
* 生成自定义位数的密钥对
*
* @param publicKeyOutput 公钥输出路径
* @param privateKeyOutput 私钥输出路径
* @param keySize key size
* @return 生成成功,返回 {@code true}, 否则返回{@code false}.
*/
public static boolean generateKey(String publicKeyOutput, String privateKeyOutput, int keySize) {
// rsa require trust r
记录下java RSA非对称加密 解密工具类
最新推荐文章于 2024-09-12 18:03:09 发布