0

我必须解码一个 XML 加密文档。相关部分是:

        <Master_key>
          <EncryptionMethod Algorithm="http://www.w3.org/2001/04/xmlenc#aes256-cbc" />
          <KeyInfo>
            <ds:KeyName>TK</ds:KeyName>
            <ds:RetrievalMethod URI="#TK" Type="http://www.w3.org/2001/04/xmlenc#EncryptedKey" />
          </KeyInfo>
          <CipherData>
            <xenc:CipherValue>73CEFD0CE530C157C275152964EFBC322D26C2E356A3F3079E026FB2B6B562BD810043066300924078472229583118A8</xenc:CipherValue>
            <xenc:FingerPrint>739E0E8490EACBCB2EA11D4A5DBEFBAE888B092E</xenc:FingerPrint>
          </CipherData>
        </Master_key>

Master_Key 是一个加密元素。aes256-cbc 用于加密。AES256 密钥是一个会话密钥,并在 XML 的开头定义:

<Security>
  <Transport_key Id="TK">
    <EncryptionMethod Algorithm="http://www.w3.org/2001/04/xmlenc#rsa-1_5" />
    <KeyInfo>
      <ds:RetrievalMethod URI="#PKC" Type="http://www.w3.org/2001/04/xmlenc#EncryptedKey" />
    </KeyInfo>
    <CipherData>
      <xenc:CipherValue>968A0AFA54DAD4081FC264C90CD5F1341AD8274F130F5E9E8DC397B9FE3B7EC00FC72DD8C8A22B6E8A606B7693B80882777972D61316FD280A64D166DD0DA08748D285A2D4236DC92153C7A3ECF77580F380BE1A4E8B5E688BDB090A92B5C0CF3C1D90E00E73B4B50940195587DECB1ECF686B51C3C566D0BC36EA5EC0E87C32827EFFCDD3B5A91AF9AD0A0594527E43395CB6CC44653F60F9792505598709FE2C5F1BD21BAA8B6C9C02ADE354B7E8717BE999A11B6422F6C67B0D7A13C96051658C2B0315812DD772321E9820FEE73843C76869F65FE6327253A5BDD1255EF4DEA9B5A17DB54A5B7AEEA1DB4BEA018301E2CAB04B79A3EF81A419DB2B837404</xenc:CipherValue>
      <xenc:FingerPrint>1F1862AFB4CC212C18439F12C1C3E6B615E70F65</xenc:FingerPrint>
    </CipherData>
    <CarriedKeyName>TK</CarriedKeyName>
  </Transport_key>
</Security>

它本身使用 rsa-1_5 加密,基于公钥,解密者必须拥有私钥。

我必须解密内容。虽然我知道私钥,但我目前不知道该怎么做。特别是我想知道为什么加密值

73CEFD0CE530C157C275152964EFBC322D26C2E356A3F3079E026FB2B6B562BD810043066300924078472229583118A8

长度为 48 字节。不应该是 32 Bytes 的倍数,因为 AES256 使用 256bits=32bytes 的块长度。

我将不胜感激任何帮助...

4

0 回答 0