我们正试图决定我们的应用程序应该使用哪种RSA密钥格式。理想的格式将在大多数流行的平台/框架中得到广泛使用和支持。这将使第三方更容易与我们的系统集成。那么,RSA密钥格式中哪一种最接近于此呢?
发布于 2014-05-01 13:36:52
对于私钥存储,您主要会发现:
RSAPrivateKey类型)。当该对象被be 64编码为PEM格式时,标题将是:-----BEGIN RSA PRIVATE KEY-----。原始(二进制)格式为“原样”,但PEM包含对称加密选项(带有密钥或密码)。这种PEM格式并不是真正的标准化或文档化,而是“OpenSSL所做的”。-----BEGIN PRIVATE KEY----- (请注意与前一种情况的不同:键类型不再在PEM头中指定,因为ASN.1结构包含该信息)。虽然使用PEM编码的PKCS#8文件可以包含PEM级别的加密,但这很少被执行,因为PKCS#8也可以在内部进行加密。PKCS#8受益于许多框架中的支持,例如Java对这种格式的了解。对于公钥,有几个曲折:
SubjectPublicKeyInfo (在标准中查找它),它是一种特定于算法的格式的包装器,它将我们带回到PKCS#1。在现实世界的应用程序中偶尔会发现经过DER编码的SubjectPublicKeyInfo结构,但它们是非常罕见的。对于互操作性和集成,我认为它是X.509+PKCS#8 (可能使用PKCS#12)和OpenPGP之间的纽带。就我个人而言,我会使用前者,但这主要是出于习惯。
https://security.stackexchange.com/questions/57043
复制相似问题