1

我正在为南非的学校开发一个应用程序,该应用程序需要将 XML 格式的数据提交给国家 IT 机构进行统计处理。我目前正在使用 PHP 的DOMDocument类生成 XML 文件。

我的文件已通过第一阶段验证过程。下一阶段是实现 XML 文件的加密和压缩。压缩是一个简单的 GZip,所以不用担心。

规范文档表明使用了 RSA 加密(我将获得 RSA 密钥以在软件中实现)以及某种形式的对称加密,例如三重 DES(尽管这是一个“示例”,并且任何算法都http://www.w3.org/TR/xmldsig-core可以实施)。如果我理解正确,则 RSA 加密是对用于实际加密字段的对称密钥进行编码。

规范文档还说“可以对整个文件或某些元素执行 XML 文件的加密”。在这个阶段,我不太确定哪个更容易,所以任何一个的答案就足够了!

我假设,要求是加密 XML 标记的内容而不是名称(如 中所示http://www.w3.org/TR/xmlenc-core/#sec-eg-Element-Content-Character)。

如果这看起来含糊不清,我深表歉意。这是我目前掌握的所有信息,机构的联系人很高兴地说(VisualBasic .NET)代码示例应该解释一切......如果您想检查此代码示例,欢迎您查看以下 ZIP 文件中的 Word 文档,大约从第 213 页开始。http://www.sita.co.za/doe_lurits/DEVS-00118%20Rev%201.2%2012%20Jan%202009.zip

如果有人可以帮助或指出我正确的方向,我将不胜感激。

4

4 回答 4

0

请参阅openssl_encrypt对称加密和openssl_public_encrypt/openssl_private_decrypt以了解非对称加密。

于 2010-06-21T15:08:24.463 回答
0

听起来您既可以加密整个文档,也可以只加密某些“敏感”标签的内容。加密整个文档可能是最简单的方法。

至于 RSA/3DES 的事情——你几乎肯定是对的。您将使用 3DES 加密文档,然后使用他们的 RSA 公钥加密您的 3DES 密钥。

所以,看起来你需要做的只是生成文档,压缩它,然后用 3DES 加密压缩结果。

于 2010-06-21T15:08:56.943 回答
0

您应该只使用 XMLSec Encryption 加密 XML 文件。以下库应该为您处理所有细节,

http://code.google.com/p/xmlseclibs/

于 2010-06-21T15:21:06.213 回答
0

Symmetric-encrypted-document-plus-PK-encrypted-key 架构本质上是 PGP。您的客户会接受 OpenPGP 吗?

于 2010-06-21T15:32:13.993 回答