有大量关于如何创建密钥库并将它们与 java 一起使用的文档。不幸的是,丰富的文档完全淹没了关于如何在不使用密钥库的情况下进行加密的任何内容,而且我一直无法找到一个好的起点。我知道大多数时候密钥库是个好主意。我有一个非常具体和奇怪的案例(我不想透露细节,所以不要问),我希望能够以类似于用于 ssh 的格式提供私钥作为文本.ssh/id_rsa 私钥文件:
-----BEGIN RSA PRIVATE KEY-----
Proc-Type: 4,ENCRYPTED
DEK-Info: AES-128-CBC,508C51E6852AFF6BE89DB2B8A185DC4A
lG/N0foobarbazfobarbazFoOB4R842foobarbazfobarbazFoOB4R842foobarb
azfobarfoobarbazfobarbazFoOB4R842foobarbazfobarbazFoOB4R842fooba
rbazfobarbazFoOB4R842foobarbazfobarbazFoOB4R842fjdsjkfdsjklfadsj
azfobarfoobarbazfobarbazFoOB4R842foobarbazfobarbazFoOB4R842fooba
rbazfobarbazFoOB4R842foobarbazfobarbazFoOB4R842fjdsjkfdsjklfadsj
azfobarfoobarbazfobarbazFoOB4R842foobarbazfobarbazFoOB4R842fooba
rbazfobarbazFoOB4R842foobarbazfobarbazFoOB4R842fjdsjkfdsjklfadsj
azfobarfoobarbazfobarbazFoOB4R842foobarbazfobarbazFoOB4R842fooba
rbazfobarbazFoOB4R842foobarbazfobarbazFoOB4R842fjdsjkfdsjklfadsj
azfobarfoobarbazfobarbazFoOB4R842foobarbazfobarbazFoOB4R842fooba
rbazfobarbazFoOB4R842foobarbazfobarbazFoOB4R842fjdsjkfdsjklfadsj
azfobarfoobarbazfobarbazFoOB4R842foobarbazfobarbazFoOB4R842fooba
rbazfobarbazFoOB4R842foobarbazfobarbazFoOB4R842fjdsjkfdsjklfadsj
azfobarfoobarbazfobarbazFoOB4R842foobarbazfobarbazFoOB4R842fooba
rbazfobarbazFoOB4R842foobarbazfobarbazFoOB4R842fjdsjkfdsjklfadsj
azfobarfoobarbazfobarbazFoOB4R842foobarbazfobarbazFoOB4R842fooba
rbazfobarbazFoOB4R842foobarbazfobarbazFoOB4R842fjdsjkfdsj0b+FMFD
-----END RSA PRIVATE KEY-----
然后用它来加密其他一些数据。我遇到的一个问题是,虽然我过去设置了许多 ssh 帐户,但我不知道该特定格式的实际名称(是 PEM 吗?但是我在搜索时看到的 pem 示例缺少 Proc-Type 和DEK-Info 行),因此无法搜索 javadoc 或其他有关使用它的建议。
问题是:上述格式的名称是什么?从 Java 字符串中使用该格式并打算使用它来加密数据的最佳方法是什么(当然,稍后将使用匹配的公钥解密)?