C# 应用程序的密钥存储在哪里

Vij*_*jay 4 c# encryption

还有类似的问题 如何管理对称算法中的密钥 在哪里存储要在 SHA-1 哈希中使用的密钥?

我的问题是一样的,但我想问不同的问题

我有 C# 应用程序。我正在加密应用程序中的一些数据。对于加密,我使用密钥或密码。解密也需要同样的东西。

在应用程序中何处/如何存储此密钥或密码?从反射中很容易查看字符串密码。我可能会使用一些组合来生成密码,但是一些聪明的人可以通过一些努力猜出这一点。

是否有任何安全的方法来存储或管理应用程序中用于加密数据的秘密密码?

小智 7

我怀疑是否有任何有保证的安全方法来存储密钥。最终你的程序必须访问密钥,破解者可以通过逆向工程轻松地弄清楚这是如何发生的,并将该字符串重定向到他们想要的任何地方。

您最好的选择是:

  • 尽可能地混淆密钥。这使得访问“密钥”变得更加困难,但并不意味着不可能(见上文)。不要将其存储为字符串,而是使用函数生成它,或者使用种子并通过函数传递它来获取秘密字符串。

  • 如果您的用例允许,请使用公钥/私钥对。仅当您希望应用程序加密数据,将其发送到服务器,然后想要解密时,它才有效。在这种情况下,您将公钥嵌入到应用程序中(即使破解者发现这一点也没关系),并将私钥保留给您自己或您的服务器。

  • 但那么你将如何存储私钥呢? (5认同)