我正在考虑使用WCF在Silverlight客户端和本地代码(C++)服务器之间发送加密数据。我正在考虑使用AesManaged类对客户端发送回服务器的数据进行加密,但想知道如何解密。有一个假设是,如果AesManaged类是针对AES规范实现的,那么它应该与任何C++ AES库交叉兼容,但是考虑到以前微软(和其他供应商)对规范的“解释”的经验,我觉得如果可能的话,我应该确认这一点。
我计划构建一个原型,但我希望从已经在这一领域有经验的人那里得到答案。使用C++/CLI或C#访问AesManaged类不是一个选择,因为我正在处理要添加功能的遗留代码。
发布于 2011-02-04 08:23:26
我所能告诉您的是,这样问很好;我不能谈论这个特定的互操作,但我正在尝试与一个使用较旧的本机实现AesLib的遗留软件进行通信,而我正在尝试使用AesCryptoServiceProvider。他们不会彼此交谈,显然是因为AesLib要么使用没有IV的模式,要么有我无法发现的静态或确定性IV。
如果您可以获得并引用本机服务器正在使用的AES实现,并在其周围实现一个与ICryptoServiceProvider兼容的包装器,那么这可能是保证您的消息完好无损地到达的最佳保证(尽管这可能会导致其自身的问题)。否则,我将确保拥有关于此实现的所有可发现信息,以便能够以相同的方式配置AesManaged。您至少需要密钥、IV、块大小和模式。
发布于 2011-02-10 16:38:11
很久以前(在Silverlight2Beta中),我已经成功地将C# AesManaged与PHP实现结合使用,所以这当然是可能的。
但是,您可能希望仔细研究IV、填充、块大小和模式等内容,以确保AES的设置匹配。
https://stackoverflow.com/questions/4893226
复制相似问题