.NET RSAKeyValue base64 私钥到单个 base64 私钥



我提供了以下 RSA 私钥,格式为

<RSAKeyValue>
   <Modulus>XXXXXXXX</Modulus>
   <Exponent>XXXXXXXX</Exponent>
   <P>XXXXXXXX</P>
   <Q>XXXXXXXX</Q>
   <DP>XXXXXXXX</DP>
   <DQ>XXXXXXXX</DQ>
   <InverseQ>XXXXXXXXXX/InverseQ>
   <D>XXXXXXXX</D>
</RSAKeyValue>

XXXX 采用 Base64 格式。

我想知道如何将所有 XXXXXX 位组合成一个 Base64 字符串。
使用这个 Base64 字符串,我执行以下操作:
1. 将其馈送到 TMemorStream
2. 使用 Indy 的 TIdDecoderMIME 类从 MemoryStream
中解码 Base643. 解码的 MemoryStream 然后从 Jedi 的 wcrypt2.pas(Microsoft Cryptographic API 的 delphi 包装器)输入到 CryptDecrypt 函数中

我知道相同格式的公钥的解决方案

<RSAKeyValue>
<Modulus>xqiYKv0umaLdmrKPyBfYmAfzZYVsvsOJyS4c1lBPjqpn7zh+XyxPXK7MxJkAlenQJM33M+ZYfmlPLya7JWXXTPviylEEtlmul9GshpX2caxWu2YO9vNIHRZYYau4ccbkm95iMyJi8KN2ANtqDwiJv55vcXZDqjPSDE4ap49xmog==</Modulus>
<Exponent>AAQC</Exponent>
</RSAKeyValue>

解决方案是添加"BgIAAACkAABSU0ExAAQAAAE"+指数+模数

结果是: BgIAAACkAABSU0ExAAQAAAEAAQCxqiYKv0umaLdmrKPyBfYmAfzZYVsvsOJyS4c1lBPjqpn7zh+XyxPXK7MxJkAlenQJM33M+ZYfmlPLya7JWXXTPviylEEtlmul9GshpX2caxWu2YO9vNIHRZYYau4ccbkm95iMyJi8KN2ANtqDwiJv55vcXZDqjPSDE4ap49xmog==

使用私钥,我们如何组合它?我知道它是这样开始的:

"BwIAAACkAABSU0ExAAQAAAE" + 指数 + 模数 + ???????

RSAKeyValue XML 中的 XXXX 位于 base64 中,只是我不想在那里公开细节。我想知道如何将所有 XXXX base64 代码合并为一个 base64 私钥。

我怀疑这意味着您正在逐行执行 base64 编码。对整个文件执行编码要简单得多。

例如,您可以按如下方式执行此操作:

  1. 将文件加载到TStringList 中。
  2. 使用字符串列表的 Text 属性提取表示文件的单个字符串。
  3. Base64 对该字符串进行编码。
  4. 通过电汇发送。
  5. 在接收端,解码字符串。
  6. 将字符串分配给字符串列表的 Text 属性。

最新更新