0

我正在尝试在我的 C# 类库中实现 AesManaged,并且对加密不熟悉需要一些成熟的指导。我一直在看这个 MSDN 示例,它将字符串加密为二进制并将二进制解密回字符串。

如何调整它以支持字符串到字符串和二进制到二进制的实现?

  • 一些配置数据需要作为加密字符串存储在 XML 文件和注册表中。
  • 一些较大的易失性数据需要加密为二进制文件。

由于这是一项紧急任务,我认为最好不要依赖假设。不知道 Aes 是如何工作的,我的要求是否像 getEncoding.ASCII.GetString和一样简单Encoding.ASCII.GetBytes

4

1 回答 1

3

是的,这基本上就是你“需要”做的所有事情。将字符串转换为字节数组并加密。不过,加密的结果不会是“友好”的字符串。它主要是不可读的ASCII。如果您将结果存储在 XML 文件中,您可能希望使用ToBase64将加密的输出存储为 Base64 。当你读回这些值时,你会想要从 base64 转换,然后解密。

根据您需要的安全级别,通常仅使用 AES 是不够的。AES 将提供机密性(无法读取消息),但不提供完整性(修改加密数据)。使用HMAC之类的东西会告诉您是否有人篡改了数据,即使他们无法读取数据。

于 2012-05-06T02:43:46.340 回答