【问题标题】:How do I encode RSA keys written in my own Java implementation in ASN.1 DER format?如何以 ASN.1 DER 格式对用我自己的 Java 实现编写的 RSA 密钥进行编码?
【发布时间】:2017-07-06 17:53:39
【问题描述】:
我正在用 Java 编写自己的 RSA 实现,而不使用内置的 Key 接口。我在 PKCS #1 中读到,编码 RSA 密钥的标准方法是使用 DER 格式的 ASN.1。但是,我不确定如何使用我自己的 RSA 版本来做到这一点。这只是一个用于加密和解密文件和文本的程序,仅供个人使用。我不一定要创建 X.509 证书。我只想将编码字符串写入 .txt 文件。我想我应该以某种方式使用 Bouncy Castle。
【问题讨论】:
标签:
java
cryptography
rsa
asn.1
der
【解决方案1】:
是的,您可以为此使用充气城堡。
- 下载Bouncy Castle轻量级API源代码并编译;
- 创建一个 RSA 密钥对(使用 Bouncy Castle API);
- 通过单步执行 ASN.1 代码来检索“编码”版本。
已经有一些关于 ASN.1 编码的书籍(和教程),这在 StackOverflow 上不是很容易回答的。我想您想阅读其中的一些内容,并可能了解 ISO/IEC 8859 规范。
此外,您还需要 PKCS#1 标准、X.509 标准(用于 SubjectPublicKeyInfo)和 PKCS#8 来对私钥的内部结构进行编码。