java m e 获取公钥_Java如何生成公钥和私钥?
下面的代码段向您展示了如何使用JDK Security API生成公共和私有密钥。私钥可用于对文档签名,而公钥可用于验证文档签名有效。
java.security软件包中提供了用于生成密钥对的API 。这意味着我们必须将此包导入到我们的代码中。生成密钥对的类是KeyPairGenerator。要获得此类的实例,我们必须getInstance()通过提供两个参数来调用方法。第一个参数是算法,第二个参数是提供者。
获取密钥生成器的实例后,我们必须对其进行初始化。该initialize()方法采用两个参数,密钥大小和随机性来源。我们将密钥大小设置为,1024并传递和的实例SecureRandom。
最后,为了生成密钥对,我们调用类的generateKeyPair()方法KeyPairGenerator。这将通过调用and方法KeyPair从可以获取PrivateKeyandPublicKey的位置返回一个对象。getPrivate()getPublic()
让我们看看下面的代码片段:package org.nhooo.example.security;
import java.security.*;
import java.util.Base64;
public class GenerateKeyPairDemo {
public static void main(String[] args) {
try {
KeyPairGenerator keyGen = KeyPairGenerator.getInstance("DSA", "SUN");
// 初始化KeyPairGenerator。
SecureRandom random = SecureRandom.getInstance("SHA1PRNG", "SUN");
keyGen.initialize(1024, random);
// 生成密钥对,私钥和公钥。
KeyPair keyPair = keyGen.generateKeyPair();
PrivateKey privateKey = keyPair.getPrivate();
PublicKey publicKey = keyPair.getPublic();
Base64.Encoder encoder = Base64.getEncoder();
System.out.println("privateKey: " + encoder.encodeToString(privateKey.getEncoded()));
System.out.println("publicKey: " + encoder.encodeToString(publicKey.getEncoded()));
} catch (NoSuchAlgorithmException e) {
e.printStackTrace();
} catch (NoSuchProviderException e) {
e.printStackTrace();
}
}
}
java m e 获取公钥_Java如何生成公钥和私钥?相关推荐
- java privatekey输出字符串_[Java教程]根据字符串(String)生成公钥(PublicKey)和私钥(PrivateKey)对象_星空网...
根据字符串(String)生成公钥(PublicKey)和私钥(PrivateKey)对象 2012-05-29 0 1.字符串生成公钥对象 PublicKey /** * 实例化公钥 * * @re ...
- java 根据日期获取天数_java获取日期之间天数的方法
//获取两个日期之间的天数 private int daysBetween(Date now, Date returnDate) { Calendar cNow = Calendar.getInsta ...
- java 前端页面调用数据库_java如何生成json被前端调用
小妹前端一枚,CSDN新人,分不多,请见谅. 现在在自学前后台交互. 现在采用的是ajax调用的方法,json文件是自己写的假数据. $.ajax({ url:"json/mood.json ...
- java设置pdf不可编辑_Java动态生成pdf文件(使用itext编辑pdf)
一.创建pdf模板 使用PDFelement制作pdf模板(数据域的名称对应后面插入的key) 二.导入maven依赖 com.itextpdf itextpdf 5.5.13 com.itextpd ...
- java 判断是否为男女_java:生成中文姓名(区分男女)
需求 因为某些特殊原因需要生成一些订单数据.所以需要生成随机的姓名. 实现思路 将姓氏.男生名常见字.女生名常见字分别保存在字典中,key为从1开始的连续的整数,value为姓或单字.将字典中的数据缓 ...
- java行程单解析获取内容_java如何抓取网页上的动态信息,获取源代码后如何分析JS?...
首先明确我指的动态数据是什么. 名词定义:动态数据在这里指的是网页中由Javascript动态生成的页面内容,即网页源文件中没有,在页面加载到浏览器后动态生成的. 下面进入正题. 抓取静态页面很简单, ...
- java根据属性获取对象_java反射工具类--通过指定属性名,获取/设置对象属性值
java对象通过点运算符操作对象属性的方式没法使用for,while等循环,此工具主要解决这一问题. 例如:有一对象包含属性有一定规律 obj1: { name1: "张三", a ...
- java 遍历map获取下标_java 遍历Map并且获取其中的键值
import java.util.Collection; import java.util.HashMap; import java.util.Iterator; import java.util.M ...
- java类中获取全局变量_java 通过反射获取类的全局变量、方法、构造方法
package com.str; public class ZiFuChuan { public static String ss = "全局变量!!!!!!"; String s ...
- java资源文件获取属性_Java读写资源文件类Properties
Java中读写资源文件最重要的类是Properties 1) 资源文件要求如下: 1.properties文件是一个文本文件 2.properties文件的语法有两种,一种是注释,一种属性配置. 注 ...
最新文章
- 2021-2027全球与中国经颅磁刺激仪(TMS)市场现状及未来发展趋势
- 功能强大的 C++ redis 客户端库增加至 acl 项目中
- 用户界面设计风格说明
- 交换机的端口工作模式
- unity片元着色器中获取屏幕坐标_Unity踩坑笔记(持续更新)
- wolive-在线客服系统源码_如何搭建在线客服系统?
- ios 之 autoresizing小解
- APP技巧:推荐6款超级实用的APP软件,赶快下载试试吧!
- 今天聊:做好前端的 10 个习惯
- 【结构型】Bridge模式
- 函数式编程与命令式编程的学习难度比较
- 【一分钟论文】Deep Biaffine Attention for Neural Dependency Parsing
- (转载)计算机英语名词简释
- SPSS可信度数据分析
- 把照片转换成pdf的格式
- vue导航使用及页面布局样例
- 一家计算机专卖店A型计算器,A型计算器谱子 | 手游网游页游攻略大全
- 移动物联网怎么激活?开户流程是怎么样的
- bandgap电路设计与仿真
- python获取每日支付宝与银行卡账单
热门文章
- c语言中字母后面的 是什么意思,C语言中括号里面一个字母是什么意思
- aspose.word在某个字后面自动换行_服务应用突然宕机了?别怕,Dubbo 帮你自动搞定服务隔离!...
- java一元稀多项式_数据结构之线性表- 一元稀疏多项式计算器
- huffman树_Java使用哈夫曼树实现文件压缩的原理及实现
- python暂停和恢复_Scrapy如何暂停/恢复工作?
- 谷歌浏览器:解决Chrome加载扩展程序提示程序包无效:
- php前段时间戳转字符串,JavaScript_js获取时间并实现字符串和时间戳之间的转换,废话少说,直接上代码
复制 - phpStudy...
- Java实现的FTP协议断点续传功能(上传/下载)通用类
- SLAM_SLAM问题求解框架
- python_文件读写_提取kitti数据集中带时间戳的IMU测量数据