C# 如何在应用程序中存储机密?
当我想知道“但是应用程序使用的密钥应该放在哪里?”时,我在这里提出了一个建议使用.NET加密库的问题(例如) 我有一个秘密,我需要存储在我的应用程序中,应用程序应该使用它,但用户不知道,我不知道怎么做 我所说的那种秘密不是与用户相关的(例如,用户对第三方服务的密码),而是与应用程序或开发人员相关的,用户不应该知道的(例如,如果用户知道应用程序的OAuth客户端秘密,他可以针对第三方服务模拟开发人员) 我知道Windows之类的,但在这种情况下它们没有帮助,因为它们是为了保护用户的秘密,而且它们中的大多数是运行时解决方案,而我需要保护的是“常量”和“编译时” 我完全知道,我将采取的任何行动都只会延迟熟练和有决心的用户访问机密,因为如果应用程序必须以明文形式访问机密,那么用户也可以以某种方式访问。我要寻找的是防止临时用户在“记事本”中打开应用程序并获取秘密 我完全知道,任何一种措施都只是暂时阻止技术娴熟、意志坚定的用户访问此类机密,我并不是在要求问题的防弹解决方案,我感兴趣的是除了编写C# 如何在应用程序中存储机密?,c#,security,encryption,cryptography,C#,Security,Encryption,Cryptography,当我想知道“但是应用程序使用的密钥应该放在哪里?”时,我在这里提出了一个建议使用.NET加密库的问题(例如) 我有一个秘密,我需要存储在我的应用程序中,应用程序应该使用它,但用户不知道,我不知道怎么做 我所说的那种秘密不是与用户相关的(例如,用户对第三方服务的密码),而是与应用程序或开发人员相关的,用户不应该知道的(例如,如果用户知道应用程序的OAuth客户端秘密,他可以针对第三方服务模拟开发人员) 我知道Windows之类的,但在这种情况下它们没有帮助,因为它们是为了保护用户的秘密,而且它们中
var myClientSecret=“mysupersecretentsecretkey”之外,我还有哪些选择
以存储此类信息
var myClientSecret=Encoding.UTF8.GetBytes(“MySuperSecretClientSecretKey”)
是唯一的选择吗
框架是否提供了帮助我完成此任务的任何东西?将秘密存储在智能卡中。在用户购买软件时向其发送智能卡
智能卡中存储的密钥无法读取或克隆 这太宽泛了,而且“最佳实践”也使得它以观点为基础。此外,关于这一主题的大量现有问题已经存在,请尝试搜索,等等此外,“用户看不见”和“应用程序需要正常运行”是相互排斥的。更重要的是,它过于宽泛和封闭,或者不清楚和封闭。它简直是一事无成。为什么不把重点放在你的需求上,在堆栈上找到答案呢。它就在那里。你在你的问题中也没有提到这一点。非对称密码或分组密码或其他系统的控制。它是广泛的、不明确的、基于观点的。记住你是如何到达你的目标的。研究。你需要退后一步,记住堆栈上的答案最好用相对简短的答案,而不是页面。我是说做研究。如果您希望您的密码对任何给定方可用或不可用,可以通过将密码存储在Vault中来实现。你需要仔细阅读模仿的含义。我在这里结束了,因为我现在正在讨论其他问题