java rsautil_JAVA 通过RSA获取公钥私钥工具类
public class RSAUtil {
//生成秘钥对
public static KeyPair getKeyPair() throws Exception {
KeyPairGenerator keyPairGenerator = KeyPairGenerator.getInstance("RSA");
keyPairGenerator.initialize(1024);
KeyPair keyPair = keyPairGenerator.generateKeyPair();
return keyPair;
}
//获取公钥(Base64编码)
public static String getPublicKey(KeyPair keyPair) {
PublicKey publicKey = keyPair.getPublic();
byte[] bytes = publicKey.getEncoded();
return byte2Base64(bytes);
}
//获取私钥(Base64编码)
public static String getPrivateKey(KeyPair keyPair) {
PrivateKey privateKey = keyPair.getPrivate();
byte[] bytes = privateKey.getEncoded();
return byte2Base64(bytes);
}
//将Base64编码后的公钥转换成PublicKey对象
public static PublicKey string2PublicKey(String pubStr) throws Exception {
byte[] keyBytes = base642Byte(pubStr);
X509EncodedKeySpec keySpec = new X509EncodedKeySpec(keyBytes);
KeyFactory keyFactory = KeyFactory.getInstance("RSA");
PublicKey publicKey = keyFactory.generatePublic(keySpec);
return publicKey;
}
//将Base64编码后的私钥转换成PrivateKey对象
public static PrivateKey string2PrivateKey(String priStr) throws Exception {
byte[] keyBytes = base642Byte(priStr);
PKCS8EncodedKeySpec keySpec = new PKCS8EncodedKeySpec(keyBytes);
KeyFactory keyFactory = KeyFactory.getInstance("RSA");
PrivateKey privateKey = keyFactory.generatePrivate(keySpec);
return privateKey;
}
//公钥加密
public static byte[] publicEncrypt(byte[] content, PublicKey publicKey) throws Exception {
Cipher cipher = Cipher.getInstance("RSA");
cipher.init(Cipher.ENCRYPT_MODE, publicKey);
byte[] bytes = cipher.doFinal(content);
return bytes;
}
//私钥解密
public static byte[] privateDecrypt(byte[] content, PrivateKey privateKey) throws Exception {
Cipher cipher = Cipher.getInstance("RSA");
cipher.init(Cipher.DECRYPT_MODE, privateKey);
byte[] bytes = cipher.doFinal(content);
return bytes;
}
//字节数组转Base64编码
public static String byte2Base64(byte[] bytes) {
BASE64Encoder encoder = new BASE64Encoder();
return encoder.encode(bytes);
}
//Base64编码转字节数组
public static byte[] base642Byte(String base64Key) throws IOException {
BASE64Decoder decoder = new BASE64Decoder();
return decoder.decodeBuffer(base64Key);
}
public static void main(String[] args) {
}
}
如此便可以通过java得到公钥和私钥以方便后面使用。
java rsautil_JAVA 通过RSA获取公钥私钥工具类相关推荐
- java rsa 生成公钥私钥_[Java教程]java RSA 生成公钥私钥
[Java教程]java RSA 生成公钥私钥 0 2016-10-14 17:00:15 /** * 引进的包都是Java自带的jar包 * 秘钥相关包 * base64 编解码 * 这里只用到了编 ...
- java外部接口图解_java代码实现访问网络外部接口并获取数据的工具类详解
java代码实现访问网络外部接口并获取数据的工具类 工具类代码,可以直接copy使用 package com.yqzj.util; import org.apache.log4j.LogManager ...
- Java - HuTool 使用 EscapeUtil、XmlUtil等工具类(四)
Java - HuTool 使用 EscapeUtil.XmlUtil等工具类(四) 本篇主要介绍 HuTool工具, 其是 java工具类,对于一些静态方法进行封装,虽然很小,但很全,里面拥有平时我 ...
- Java教程:微信排序并加密工具类
Java教程:微信排序并加密工具类 源码: import cn.bsit.commons.md5.MD5Utils;import java.util.Arrays; import java.util. ...
- java 手机号脱敏,身份证号脱敏 工具类
java 手机号脱敏,身份证号脱敏 工具类 import org.apache.commons.lang3.StringUtils;/*** * @title: 脱敏工具类* @author: wll ...
- android 获取手机信息工具类
package com.yqy.yqy_listviewheadview;import android.content.Context; import android.telephony.Teleph ...
- java将链接生成二维码工具类
一.添加依赖 <!-- 生成二维码--><dependency><groupId>com.google.zxing</groupId><artif ...
- Java生成和解析二维码工具类(简单经典)
Java生成和解析二维码工具类 开箱即用,简单不废话. pom.xml引入依赖 <!-- https://mvnrepository.com/artifact/com.google.zxing/ ...
- JAVA之多sheet页表格生成工具类
JAVA之多sheet页表格生成工具类 主要方法: import org.apache.poi.hssf.usermodel.HSSFWorkbook; import org.apache.poi.h ...
最新文章
- LoadRunner解决超时错误
- CRM batch product check logic in one order line item
- 天涯明月刀开发_《天涯明月刀OL腾讯旗下 北极光工作室的 厄运魔咒:“做什么凉什么”》...
- 不是python文件处理seek()方法的参数是_python文件操作seek()偏移量,读取指正到指定位置操作...
- java 反射创建对象并赋值_java使用反射创建并操作对象的方法
- 初涉Linux(无代码)
- 基于python的图像处理的毕业论文_图像处理毕业论文 精品
- 微信公号开发之自定义菜单攻略
- win10 安装 GPU版TensorFlow
- 嵌入式编程中boot和app的s19简易合并方法(使用mfc编程)
- 古城罗马、佛洛伦萨、庞贝、比萨一览
- 山东省第七届ACM大学生程序设计竞赛 训练总结 [8/12] 待补
- linux系统是否支持gpt分区,Linux下对大硬盘进行GPT分区详解
- 快手与NBA达成战略合作 将探索版权内容二创变现新模式
- 从140元到30元,BM官方电报群与成员轻松互动:EOS没死
- 蒲丰投针实验的一些理解
- 高通开发系列 - linux kernel内核升级msm-4.9升级至msm-4.19(2)
- matlab中data函数,matlab中griddata函数应用示例
- 超微服务器如何用u盘装系统,超微主板怎么设置u盘启动,教您超微主板怎么设置u盘启动...
- JAVA程序设计:找出最长的超赞子字符串(LeetCode:5485)
热门文章
- 详解机器翻译任务中的BLEU
- Linux内核---31.按键驱动分析(未完成)
- 将heic格式批量转化jpg或png
- php 合并pdf文件,php:不使用composer合并pdf?
- java long常量池_Java-常量池
- VIVO手机聊天打字慢?使用这些方法,2分钟就能打出500字
- sleep怎么用java_java怎么用sleep?java中sleep()的用法
- 关于盏溢出和 Security_cookie
- java线程没wait前调用notify,深入Java线程 之 wait和notify
- 衬线字体和无衬线字体是什么_你的字体和意识形态是什么