-1

我提供了以下格式的 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 解码 Base64
3. 然后将解码的 MemoryStream 从 wcrypt2.pas(Microsoft 的 delphi 包装器)输入到 CryptDecrypt 函数来自 Jedi 的加密 API)

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

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

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

The result is: BgIAAACkAABSU0ExAAQAAAEAAQCxqiYKv0umaLdmrKPyBfYmAfzZYVsvsOJyS4c1lBPjqpn7zh+XyxPXK7MxJkAlenQJM33M+ZYfmlPLya7JWXXTPviylEEtlmul9GshpX2caxWu2YO9vNIHRZYYau4ccbkm95iMyJi8KN2ANtqDwiJv55vcXZDqjPSDE4ap49xmog==

与私钥我们如何结合呢?我知道它是这样开始的:

"BwIAAAACkAABSU0ExAAQAAAE" + 指数 + 模数 + ?????????

4

1 回答 1

1

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

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

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

  1. 将文件加载到TStringList.
  2. Text使用字符串列表的属性提取表示文件的单个字符串。
  3. Base64 对该字符串进行编码。
  4. 通过电线发送。
  5. 在接收端,解码字符串。
  6. 将字符串分配给Text字符串列表的属性。
于 2013-09-06T10:26:14.570 回答