2016-04-10 26 views
10

对于UWP应用程序什么是存储需要与应用程序一起部署的秘密的推荐机制,如API密钥和秘密令牌?对于用户生成的身份验证令牌PasswordVault是有道理的,但我看不到将这些设置为应用程序部署的一部分的方法。到目前为止,我已将它们嵌入到应用程序中,看起来不“正确”或安全。在UWP应用程序中存储API密钥和秘密的推荐方式是什么?

+0

对于Windows 8.1我以前创建的.dll这将存储所需的信息,并将其添加为资源。现在计划使用加密技术并将数据存储在可以在应用程序内部解密并访问的文件中,这样即使有人从本地存储访问文件,他们也无法访问数据。虽然您可以选择“Keycredential”和“Identity”,但是一旦用户登录,这些选项就可以使用。 – Jerin

+0

@Jerin我已经考虑过了,但似乎你只是提出这个问题。你如何保护你的解密密钥? – dkackman

+0

解密密钥将作为常量添加到您的代码或.dll资源中。除非有人盗用你的代码,否则他们将无法找到使用的加密算法和解密密钥。 – Jerin

回答

1

您可以使用PasswordCredential API,代码片段:

string CredentialsName = "testing"; 
private PasswordCredential GetCredentialFromLocker() 
{ 
    PasswordCredential credential = null; 

    var vault = new PasswordVault(); 
    IReadOnlyList<PasswordCredential> credentialList = null; 
    try 
    { 
     credentialList = vault.FindAllByUserName(Username); 
    } 
    catch 
    { 
     return credential; 
    } 
    if (credentialList.Count > 0) 
    { 
     credential = credentialList[0]; 
    } 

    return credential; 
} 

public void CreatePassword(string password, string username) 
{ 
    var vault = new PasswordVault(); 
    vault.Add(new PasswordCredential(CredentialsName, username, password)); 

} 
相关问题