0

我目前有一组 AES 加密/解密函数,我在 ASP.NET 中使用它们来满足我的所有加密需求。然后,我将应用程序中的这些数据来回传递给另一个我无法控制的安全应用程序。一切都以字符串的形式发送,并且字符串以 ASCII 编码与这些应用程序相互发送。

现在我正在使用一个预先存在的 Silverlight 应用程序,我需要在其中向数据添加加密/解密功能,但我仍将发送到使用 ASCII 编码的另一个安全应用程序(我无法控制)。由于 Silverlight 使用 UTF-8,这似乎是个问题。我对编码有足够的了解,知道 ASCII 和 UTF-8 是如何相似和不同的(0 到 127 都是相同的,但 UTF-8 有更多字符)。如果我要向/从使用 ASCII 的应用程序发送/接收数据,那么在我的端使用 UTF-8 加密/解密是否有任何风险?(我的应用在加密之前不会使用任何非标准字符)

另外,我应该:

  1. 在 Silverlight 中使用具有我的 ASCII 加密/解密功能的服务参考?或者
  2. 在 Silverlight 应用程序中以 UTF-8 加密/解密,不需要服务参考?
4

1 回答 1

1

虽然从 i18n 的角度来看这很糟糕,但如果可以合理地确定您的输入只会在正常的 ascii 字符范围内,那么您应该没有问题。

您可以添加此 SO 答案中的代码,为您提供一些额外的保护——将非 ASCII 安全的 UTF-8 字符转换为“?”,返回一个字节数组,您可以将其输入加密方法。

于 2013-01-24T16:40:19.490 回答