gpt4 book ai didi

c# - 如何从 pem 文件或 xml 文件中读取 RSA 公钥

转载 作者:行者123 更新时间:2023-11-30 19:50:49 25 4
gpt4 key购买 nike

我有一件简单的事情要做:我想使用 AES 算法和 pem 文件中包含的 key 来加密数据,如页面所示:http://msdn.microsoft.com/en-us/library/sb7w85t6.aspx

在此示例中,每次运行函数时都会创建一个新的加密 key 。但是我需要从 pem 文件或 xml 文件中读取此 key ,但我找不到执行此操作的方法。

有没有一种简单的方法可以从 pem 文件中读取 key 并将其转换为字节数组 (byte[])?

我使用的是 C# - .net Framework 3.5,文件中的 key 是我们合作伙伴的 RSA 公钥。

最佳答案

RSA key 在什么样的 XML 文件中?

.Net的RSACryptoServiceProvider类可以使用 FromXmlString 从 XML 中读取公钥以下格式的方法:

<RSAKeyValue>
<Modulus>3EgNS5XumwoQYU4uvr2OTtlZ4YJWUcGqTAVLQPtzejB7JSiETGdveuH7jGRFi2lNqruRL+SGpr6KJvvijG7wOQheIsJC48lDnS692pZH3rDcWgGuqjwssFKhJ5GSu3Tetrf4DOKVOeTaG5cU0pATV6aDU0Npy0a+5vkU5e3+5jE=</Modulus>
<Exponent>AQAB</Exponent>
</RSAKeyValue>

编辑

据我了解您的程序,您使用的是 RSA 公钥作为 AES 对称 key 。 不要这样做!它增加了安全的假象,却没有采取任何措施来保护您的数据。打个比方,这就像把保险箱连同 key 一起寄出去,但先把 key 放在一个粉红色的盒子里。如果您这样做,任何获得公共(public) RSA key 的人都能够解密您的数据; RSA 私钥根本不会被使用。

如果第三方强制您这样做,请向他们展示此答案,或询问任何半正经的密码学家。

不允许他们这样做


您应该做的是创建随机 AES key ,使用 RSA 公钥对其进行加密,然后将加密 key 与加密数据一起发送。这样,只有拥有 private RSA key 的人才能读取数据,因为其他任何人都无法解密对称 AES key 。

关于c# - 如何从 pem 文件或 xml 文件中读取 RSA 公钥,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1797986/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com