在Windows 8中将敏感数据保存到本地文件的最佳方法是什么?我正在开发一个需要存储oAuth令牌/密码的C#应用程序.我听说在.NET中加密/解密数据很常见,但我对这些机制没有任何经验.鉴于Windows 8应用程序拥有类似于Windows Phone的个人/受保护存储区域,是否仍建议使用加密?
此外,每次请求数据导致性能问题时,都不加密/解密?(编写自定义/ lite算法会更好吗?)
我想在我的桌面应用程序(基于WPF)中使用Windows.Security.Credentials.PasswordVault来安全地存储用户的密码.我设法使用此MSDN文章访问此Windows 10 API .
我做了一些实验,似乎可以从任何其他桌面应用程序读取从一个桌面应用程序(不是本机UWP应用程序)写入PasswordVault的任何数据.即使使用Desktop Bridge技术打包我的桌面应用程序,因此具有包标识也无法修复此漏洞.
任何想法如何解决这个问题,并能够从其他应用程序安全存储应用程序的数据?
更新:似乎PasswordVault没有为DPAPI增加额外的安全性.案件结案,结果为否定.
我刚刚发现Win8在控制面板上有一个部分,称为用户帐户和家庭安全与Credential Manager.我想访问存储在那里的凭证(不是检索密码,而是使用它们作为登录的令牌).所以,基本上,我想在已经安装的软件上搭便车.
在本次讨论中已经提出了最接近解决方案的方法,并不是那么接近.
我在哪里可以找到Windows.Security.Credentials.PasswordVault的程序集?我一直在谷歌搜索两个小时,但我只获得有关应用程序开发的信息,而我将瞄准桌面.
有没有办法解析对Win7和Win8的预存凭据的访问?我担心在Win8中对保险库设施进行了大幅改造,使得无法同时定位两个平台.
目前,我将我的用户名和密码存储在SQL Server CE数据库中.
我想使用一些Windows API来安全地存储我的用户密码,这样机器上运行的其他应用程序就无法读取它们.
我支持Windows 7,因此我无法使用密码保险库
我已经尝试使用CredWrite和CredRead API,基于此处提供的示例.
但是,当我成功设法存储和恢复我的密码时,我也成功地设法使用完全不同的应用程序恢复它们.这意味着我唯一的安全就是我正在使用的密钥.
还有其他可行的解决方案吗?
似乎任何使用Windows安全帐户管理器的人都不会这样做.
c# winapi password-protection account-management passwordvault
我正在使用CredentialPicker类来呈现熟悉的UI.正如所料,这将凭证存储在Windows的凭据管理器中.编辑:这里的示例代码
但是,存储用户名/密码的推荐方法似乎是PasswordVault API - 在Windows 8中保存敏感数据的最佳实践 - 它看起来像一个不同的系统?
两者的正确方法是什么?介绍熟悉的用户界面和2.在地铁风格的应用程序中添加,访问和删除用户名/密码?
我正在使用C#,但C++和JS的答案会很好..
嘿我正在使用PasswordVault在我的Windows 8应用程序中存储用户凭据.
我希望应用程序在加载时执行的操作是检查PasswordVault /凭据管理器是否已为我的应用程序存储了值.如果不这样做,我希望它留在页面上,以便用户可以登录,但如果凭证已经存在,那么我希望它直接进入第2页.
我尝试使用以下代码:
private Windows.Security.Credentials.PasswordCredential GetCredentialFromLocker()
{
Windows.Security.Credentials.PasswordCredential credential = null;
var vault = new Windows.Security.Credentials.PasswordVault();
var credentialList = vault.FindAllByResource("MYapp");
if (credentialList.Count > 0)
if (credentialList.Count == 1)
credential = credentialList[0];
else
// User selecor
return credential;
}
Run Code Online (Sandbox Code Playgroud)
然后在页面加载我有
private void Page_Loaded(object sender, RoutedEventArgs e)
{
var loginCredential = GetCredentialFromLocker();
if (loginCredential != null)
this.Frame.Navigate(typeof(page2));
else
{
loginBigButton.Visibility = Windows.UI.Xaml.Visibility.Visible;
signUpButton.Visibility = Windows.UI.Xaml.Visibility.Visible;
signUpTextBlock.Visibility = Windows.UI.Xaml.Visibility.Visible;
}
}
Run Code Online (Sandbox Code Playgroud)
问题是,如果没有与资源(MYapp)存储的凭证代码:
var credentialList = vault.FindAllByResource("MYapp");
Run Code Online (Sandbox Code Playgroud)
收益率:
WinRT信息:无法在Vault中找到凭据
附加信息:找不到元素.
我想知道是否有人成功自动化 LastPass CLI 登录过程。我似乎无法绕过密码提示,我需要自动化它才能使其有用。
我尝试过类似的命令
echo <password> | lpass login <username>
Run Code Online (Sandbox Code Playgroud)
或者
yes <password> | lpass login <username>
Run Code Online (Sandbox Code Playgroud)
我不断收到输出说密码不正确。有人自动化这个吗?
谢谢!
authentication automation command-line-interface passwordvault lastpass
c# ×6
windows-8 ×3
credentials ×2
security ×2
.net ×1
automation ×1
lastpass ×1
winapi ×1
wpf ×1