使用字符串和二进制数据实现 AesManage

本文关键字:数据 实现 AesManage 二进制 字符串 | 更新日期: 2023-09-27 18:33:15

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

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

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

由于这是一项匆忙的任务,我认为最好不要依赖假设。不知道 Aes 是如何工作的,我的要求是否像获得Encoding.ASCII.GetStringEncoding.ASCII.GetBytes一样简单?

使用字符串和二进制数据实现 AesManage

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

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