Max*_*ich 10 c# vb.net encryption cryptography
我知道.NET框架中提供的许多加密提供程序以及如何使用它们的基础知识.这很简单.
但我担心的是这个.
假设我想使用这些库来加密XML序列化对象,以防止篡改以及任何人出现并查看这些文件内容的能力.
我一直留下的问题是解密这些数据的密钥需要在我的应用程序中的某个地方存储为常量.基本上使整个练习变得毫无意义.
那么,如何在可拆卸的应用程序中安全地存储加密算法的密钥?
编辑:所以如果我正确理解下面的两个答案.这意味着基本上任何实现(为了安全)都要求它只读或写,但绝不是两者兼而有之?它是否正确?
你不知道。如果应用程序可以访问密钥,那么这只是默默无闻的安全性。最好以某种方式对用户进行身份验证(密码是最简单的示例),以确保允许他访问数据。您不能让应用程序为您执行此操作,因为它根本不值得信任。任何人都可以获取应用程序中存储的信息。
如果关键信息存储在其他地方,恶意用户或应用程序也可能访问它。如果没有,请将您的数据直接存储到那个神奇的安全位置。
现在,如果您仍然想走这条路并在没有身份验证的情况下存储敏感数据,那么您最好的选择 - 或者至少是一种半安全的简单方法 - 可能是 DPAPI(请参阅ProtectedData中的类System.Security.Cryptography)。它将使用机器密钥或用户帐户密钥对数据进行加密(您可以选择)。这样在另一台计算机上运行的程序或使用其他用户帐户的程序就无法访问它。Windows 将尝试保护这些密钥,但实际上,在正确的计算机上或使用正确的用户帐户运行的任何应用程序都可能能够访问您的数据。
| 归档时间: |
|
| 查看次数: |
2618 次 |
| 最近记录: |