java 解析der文件_java-如何读取也用bouncycastle在DER中编码的PK...
我已经尝试过以下问题的答案:
但是由于我调用时我的加密密钥已编码为DER
Object object = pemParser.readObject();
对象为null.
我可以使用openssl的命令将其转换为PEM(它也会解密密钥)
openssl pkcs8 -inform der -in pkey.key -out pkey.pem
但我需要读取其原始文件中的密钥
最佳答案
这两个问题都是关于使用OpenSSL的“旧版PEM”加密来解析和解密文件的.您使用的是PKCS8加密,尽管类似,但有所不同,因此Reading PKCS8 in PEM format: Cannot find provider更近了.您可以在此处使用大多数方法,但是可以跳过PEM解析:
import org.bouncycastle.asn1.ASN1Sequence;
import org.bouncycastle.asn1.pkcs.EncryptedPrivateKeyInfo; // NOT the
import org.bouncycastle.asn1.pkcs.PrivateKeyInfo; // javax ones!
import org.bouncycastle.openssl.jcajce.JcaPEMKeyConverter;
import org.bouncycastle.openssl.jcajce.JceOpenSSLPKCS8DecryptorProviderBuilder;
import org.bouncycastle.operator.InputDecryptorProvider;
import org.bouncycastle.pkcs.PKCS8EncryptedPrivateKeyInfo;
// args[0] = filename args[1] = password
FileInputStream fis = new FileInputStream(args[0]);
byte[] buff = new byte[9999]; int len = fis.read(buff); fis.close();
// could use File.readAllBytes in j8 but my dev machine is old
// create what PEMParser would have
ASN1Sequence derseq = ASN1Sequence.getInstance (Arrays.copyOf(buff,len));
PKCS8EncryptedPrivateKeyInfo encobj = new PKCS8EncryptedPrivateKeyInfo(EncryptedPrivateKeyInfo.getInstance(derseq));
// decrypt and convert key
JcaPEMKeyConverter converter = new JcaPEMKeyConverter();
InputDecryptorProvider decryptionProv = new JceOpenSSLPKCS8DecryptorProviderBuilder().build(args[1].toCharArray());
PrivateKeyInfo keyInfo = encobj.decryptPrivateKeyInfo(decryptionProv);
PrivateKey key = converter.getPrivateKey(keyInfo);
// now actually use key, this is just a dummy
System.out.println (key.getAlgorithm());
java 解析der文件_java-如何读取也用bouncycastle在DER中编码的PK...相关推荐
- java 解析xls 文件_java简单解析xls文件的方法示例【读取和写入】
本文实例讲述了java简单解析xls文件的方法.分享给大家供大家参考,具体如下: 读取: import java.io.*; import jxl.*; import jxl.write.*; imp ...
- java解析yml文件_java读取解析application.yml
java读取解析application.yml 不用依赖spring容器,可单独使用. bug已修改... 第一步.首先要2个jar com.fasterxml.jackson.dataformat ...
- java 解析xml 对象_Java反射——读取XML文件,创建对象
读取XML文件,创建对象 config.xml import java.io.*; import java.lang.reflect.Constructor; import javax.xml.par ...
- java 快速读文件_java快速读取文件
如何优雅读取文件,java想简单读写一个文件都要上10行代码.幸好guava和apache commons 都有提供简单操作文件工具. 简单介绍读取文件最后一行.读取文件第一行.读取大文件.往大文件追 ...
- java解析json文件_Java性能优化:正确的解析JSON文件
数据收集服务平均1小时OOM(java.lang.OutOfMemoryError: GC overhead limit exceeded)一次,发现都是在下载处理 JSON Atom Feed时OO ...
- java 解析 svg文件_java – 如何加载和解析SVG文档
概观 使用Apache Batik加载和解析SVG文件.该解决方案在将SVG文件转换为MetaPost的初步阶段显示Java代码.这应该提供有关如何使用Java从SVG文件加载,解析和提取内容的一般概 ...
- java解析csv文件写入mysql_java读取cvs文件并导入数据库
本文实例为大家分享了java读取cvs文件并导入数据库的具体代码,供大家参考,具体内容如下 首先获取文件夹下面的所有类型相同的excel,可以用模糊匹配contains("匹配字段" ...
- java 读取mp3,java 解析MP3文件
java 解析MP3文件 首先需要知道的是,MP3文件的文件信息都放在文件最后的128个字节里面,这128个字节分别存储的信息如下: char Header[3]; /* 标签头必须是" ...
- java 输出xml文件_java解析xml文件并输出
使用java解析xml文件,通过dom4j,代码运行前需先导入dom4j架包. ParseXml类代码如下: import java.io.File; import java.util.ArrayLi ...
最新文章
- Vijos P1067Warcraft III 守望者的烦恼
- dqn在训练过程中loss越来越大_[动手学强化学习] 2.DQN解决CartPole-v0问题
- Method not found: '!!0[] System.Array.Empty()'.
- 3dmax高版本转低版本插件_视频编辑干货资料:低版本打开高版本pr文件
- vlookup练习_大胆合并吧!VLOOKUP坐字法专做单元格合并查找
- MySQL 逻辑架构与常用的存储引擎
- matlab解决无约束优化问题
- html 空行_一篇文章学习html「经典案例」
- 数据全生命周期管理应用平台的组成
- IDA pro 的Python环境变量设置
- 一次数据库的简单性能优化
- C++:vector二维数组初始化
- plsql无法连接64位oracle已解决
- linux基础命令(一)
- 运动控制系统常用传感器介绍
- aspose.total for C++ Crack
- 北京大学创业训练营专家讲座:创新大师乔布斯的创业理念与营销哲学
- OA产品的技术发展过程及未来趋势
- java设计模式简化版之六大原则
- 人脸识别的模板加载问题
热门文章
- 用CSS 实现水波扩散的特效
- OSI七层模型功能及相关设备
- [Unity3D] Unity3D连接安卓设备调试unity程序
- nofollow是什么意思?nofollow标签的写法和作用
- DHCP Relay的介绍
- PLC:学习笔记(西门子)3
- 百度迁徙大数据整理[2020+2019同期]
- GDScript:协程(Coroutine)(二)简单粗暴实用至上的语法设计
- 3dmax:3dmax三维VR渲染设置(VR发光贴图、VR灯光缓存、V-Ray焦散,渲染图中出现黑斑点的原因、插值类型)之详细攻略
- Android应用市场平台应用认领