我正在通过Microsoft的How to: Decrypt XML Elements with Symmetric Keys工作。在他们的示例中,使用
<root>
<creditcard>
<number>19834209</number>
<expiry>02/02/2002</expiry>
</creditcard>
</root>
并通过调用
来加密<creditcard>
元素
byte[] encryptedElement = eXml.EncryptData(elementToEncrypt, Key, false);
这将导致
<root>
<EncryptedData ...
</root>
因此完整的<creditcard>
元素已被加密的数据替换。
但是,在我的情况下,我具有以下格式的xml数据:
<root>
<main>
<sub1> ... </sub1>
<sub2> ... </sub2>
<sub3> ... </sub3>
</main>
</root>
我想将<sub1>
,<sub2>
和<sub3>
加密为单个加密数据块,但是保留<main>
不变。我想结束的EG:
<root>
<main>
<EncryptedData ....
</main>
<root>
是否可以在不首先重新排列xml的情况下执行此操作,还是需要将要加密的元素合并为一个虚拟元素并对其进行加密?例如,我必须临时构建此xml并加密<dummy>
元素吗?
<root>
<main>
<dummy>
<sub1> ... </sub1>
<sub2> ... </sub2>
<sub3> ... </sub3>
</dummy>
</main>
</root>