Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/340.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/security/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何在应用程序中存储机密?_C#_Security_Encryption_Cryptography - Fatal编程技术网

C# 如何在应用程序中存储机密?

C# 如何在应用程序中存储机密?,c#,security,encryption,cryptography,C#,Security,Encryption,Cryptography,当我想知道“但是应用程序使用的密钥应该放在哪里?”时,我在这里提出了一个建议使用.NET加密库的问题(例如) 我有一个秘密,我需要存储在我的应用程序中,应用程序应该使用它,但用户不知道,我不知道怎么做 我所说的那种秘密不是与用户相关的(例如,用户对第三方服务的密码),而是与应用程序或开发人员相关的,用户不应该知道的(例如,如果用户知道应用程序的OAuth客户端秘密,他可以针对第三方服务模拟开发人员) 我知道Windows之类的,但在这种情况下它们没有帮助,因为它们是为了保护用户的秘密,而且它们中

当我想知道“但是应用程序使用的密钥应该放在哪里?”时,我在这里提出了一个建议使用.NET加密库的问题(例如)

我有一个秘密,我需要存储在我的应用程序中,应用程序应该使用它,但用户不知道,我不知道怎么做

我所说的那种秘密不是与用户相关的(例如,用户对第三方服务的密码),而是与应用程序或开发人员相关的,用户不应该知道的(例如,如果用户知道应用程序的OAuth客户端秘密,他可以针对第三方服务模拟开发人员)

我知道Windows之类的,但在这种情况下它们没有帮助,因为它们是为了保护用户的秘密,而且它们中的大多数是运行时解决方案,而我需要保护的是“常量”和“编译时”

我完全知道,我将采取的任何行动都只会延迟熟练和有决心的用户访问机密,因为如果应用程序必须以明文形式访问机密,那么用户也可以以某种方式访问。我要寻找的是防止临时用户在“记事本”中打开应用程序并获取秘密

我完全知道,任何一种措施都只是暂时阻止技术娴熟、意志坚定的用户访问此类机密,我并不是在要求问题的防弹解决方案,我感兴趣的是除了编写
var myClientSecret=“mysupersecretentsecretkey”之外,我还有哪些选择
以存储此类信息

var myClientSecret=Encoding.UTF8.GetBytes(“MySuperSecretClientSecretKey”)
是唯一的选择吗


框架是否提供了帮助我完成此任务的任何东西?

将秘密存储在智能卡中。在用户购买软件时向其发送智能卡


智能卡中存储的密钥无法读取或克隆

这太宽泛了,而且“最佳实践”也使得它以观点为基础。此外,关于这一主题的大量现有问题已经存在,请尝试搜索,等等此外,“用户看不见”和“应用程序需要正常运行”是相互排斥的。更重要的是,它过于宽泛和封闭,或者不清楚和封闭。它简直是一事无成。为什么不把重点放在你的需求上,在堆栈上找到答案呢。它就在那里。你在你的问题中也没有提到这一点。非对称密码或分组密码或其他系统的控制。它是广泛的、不明确的、基于观点的。记住你是如何到达你的目标的。研究。你需要退后一步,记住堆栈上的答案最好用相对简短的答案,而不是页面。我是说做研究。如果您希望您的密码对任何给定方可用或不可用,可以通过将密码存储在Vault中来实现。你需要仔细阅读模仿的含义。我在这里结束了,因为我现在正在讨论其他问题