2011-05-29 45 views
0

是否有一个易于使用(来自.net)和普遍接受的文件格式来保存加密密钥(主要用于非对称密钥,公共和公共/私有)。是否存在一个API来创建.net(任何版本)的文件?用于保存加密密钥的文件格式

我已经看过证书,但这似乎是一个过度保存只有保存键,据我所见,不是很容易创建。

+0

证书以相同数据的几种格式之一*为普遍接受的公共(或公共+私人)密钥的文件格式。小心重新发明车轮。 – Richard 2011-05-29 10:27:12

+0

@Richard:我已经在.net中搜索了一个溶液,但是我在互联网上找到的所有解决方案都使NGen自动创建证书。除此之外,证书包含非常多的信息(信任层次结构,公司信息......),这些信息在我的情况下是多余的信息。我只想保存1或2个键。证书是否真的是正确的事情(对不起,这是一个小问题,我是一个新手)?如果是这样,除了NGen的自动化之外,还有API吗?我应该选择哪种证书类型? – HCL 2011-05-29 10:32:18

+0

您有两种选择:1.使用通常接受的文件格式 - 这意味着证书。 2.发明你自己的软件包。第二种选择不会被普遍接受,并且加密非常难以正确地使用,因此您会发现 - 如果格式受到严重攻击,则可以绕过任何保护措施。 – Richard 2011-05-29 10:35:04

回答

2

用于存储证书链(或仅一个证书)及其相关私钥的组合的最常见格式之一是PKCS#12:它倾向于使用扩展.p12.pfx。大多数浏览器都使用它。

或者,某些工具使用PKCS#1格式(例如,openssl rsa),如果您只是想要私钥。 (OpenSSL也支持PKCS#8。)

两者都可以通过密码进行加密和保护。您可以使用BouncyCastle来导出它们。 (您可能感兴趣的this question。)

编辑: 更具体地讲,您可以使用Org.BouncyCastle.OpenSsl.PemWriterWriteObject用密码可用于保护私有密钥)。它也可以让你输出一个普通的公钥(不需要依赖证书)。

相关问题