gpt4 book ai didi

c# - 在 Windows 8 中保存敏感数据的最佳实践

转载 作者:IT王子 更新时间:2023-10-29 04:12:45 25 4
gpt4 key购买 nike

在 Windows 8 中将敏感数据保存到本地文件的最佳方式是什么?我正在开发一个需要存储 oAuth token /密码的 C# 应用程序。我听说在 .NET 中加密/解密数据很常见,但我对这些机制没有任何经验。考虑到 Windows 8 应用程序有自己的个人/ protected 存储区域,类似于 Windows Phone,是否仍然建议/需要加密?

此外,每次请求数据时加密/解密不会导致性能问题吗? (编写自定义/精简算法会更好吗?)

最佳答案

更新:请注意,虽然现代/metro 应用程序不能访问彼此的内容,但桌面应用程序将可以不受限制地访问通过这些 API 存储的所有数据.参见 http://www.hanselman.com/blog/SavingAndRetrievingBrowserAndOtherPasswords.aspx其中包括演示这一点的代码。


Win8 有一个名为 PasswordVault 的新 API它专为您解决所有这些难题而设计。真正易于使用、安全,并且可以由用户配置为在他们的机器之间漫游,因此他们只需输入一次凭据。我已经成功地将它用于 OAuth token

检索凭据(注意 WinRT 引发的愚蠢异常……它们实际上应该只返回 null):

const string VAULT_RESOURCE = "[My App] Credentials";
string UserName { get; set; };
string Password { get; set; };
var vault = new PasswordVault();

try
{
var creds = vault.FindAllByResource(VAULT_RESOURCE).FirstOrDefault();
if (creds != null)
{
UserName = creds.UserName;
Password = vault.Retrieve(VAULT_RESOURCE, UserName).Password;
}
}
catch(COMException)
{
// this exception likely means that no credentials have been stored
}

存储凭据:

vault.Add(new PasswordCredential(VAULT_RESOURCE, UserName, Password));

删除凭据(当用户单击您应用中的注销按钮时):

vault.Remove(_vault.Retrieve(VAULT_RESOURCE, UserName));

关于c# - 在 Windows 8 中保存敏感数据的最佳实践,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9052482/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com