使用字符串和二进制数据实现 AesManage
本文关键字:数据 实现 AesManage 二进制 字符串 | 更新日期: 2023-09-27 18:33:15
我正在尝试在我的 C# 类库中实现 AesManage,并且不熟悉加密需要一些成熟的指导。我一直在看这个 MSDN 示例,它将字符串加密为二进制,并将二进制解密回字符串。
如何调整它以支持字符串到字符串和二进制到二进制实现?
- 某些配置数据需要作为加密字符串存储在 XML 文件和注册表中。
- 一些较大的易失性数据需要加密为二进制文件。
由于这是一项匆忙的任务,我认为最好不要依赖假设。不知道 Aes 是如何工作的,我的要求是否像获得Encoding.ASCII.GetString
和Encoding.ASCII.GetBytes
一样简单?
是的,这基本上就是你"需要"做的所有事情。 将字符串转换为字节数组并加密。不过,加密结果不会是"友好"字符串。它主要是不可读的 ASCII。如果要将结果存储在 XML 文件中,则可能需要使用 ToBase64 将加密输出存储为 Base64。当您读回值时,您需要从 base64 转换并解密它。
根据您需要的安全级别,仅使用 AES 通常是不够的。AES 将提供机密性(无法读取消息),但不提供完整性(修改加密数据)。使用HMAC之类的东西会告诉你是否有人篡改了数据,即使他们无法读取数据。