【发布时间】:2013-08-21 20:39:28
【问题描述】:
如果我使用 AES (System.Security.Cryptography) 简单地加密和解密 SQL 服务器中的 blob 或 memo 字段,那么我应该将“Key”和“IV”值存储在服务器的什么位置? (文件、Regkey、Dbase、...)
那么保护那些 AES“密钥”和“IV”值呢?
背景问题更多:如果“他们”破解服务器并获取数据库......那么他们可能也可以访问执行加密内容的程序(它在同一台服务器上,无能为力) ......如果“他们”非常好,那么他们会注意到“Key”和“IV”值的存储位置......(.NET 4.5 ILSPY)并且一切都可以再次解密。
请指教?你们都是如何处理 AES“Key”和“IV”值的?
Ps:这与 pwd 字段无关……所以,这与散列无关……它的纯数据密码学。
【问题讨论】:
-
stackoverflow.com/questions/4967325/… 的可能重复项 - 尽管那里也没有提供好的答案
-
Martin,我确实看到很多不正确或糟糕的答案。这就是为什么我开始提出这个问题以深入了解这一点。
-
我在aes key secure看到了一个潜在的解决方案
-
嗨樱桃。盐值用于单向加密方法(如 SHA 或 MD5 散列算法来保护密码)。在对称加密中,我们不使用任何盐值。如果您愿意,您可以认为 IV 是某种盐值(但这样想是不正确的......)此外:共享密钥在单个服务器加密/解密上是不可行的。此外,这不是“基于密码的加密”。它只是一个使用 AES 密钥/IV 加密/解密数据的程序。密钥本身是唯一的,将用于加密/解密所有数据。
标签: c# .net encryption cryptography aes