如何在两个不同的.NET Core应用程序之间共享加密数据?

时间:2017-05-10 15:30:06

标签: c# encryption .net-core

我有一个ASP.NET核心应用程序和一个需要共享相同数据库条目的.NET Core命令行应用程序。我想加密其中一个列,但仍然可以让两个应用程序读取条目。我一直在研究DataProtection apis的加密,但可以弄清楚如何在两个应用程序之间解密。有什么建议吗?

在这两个应用中,我尝试使用相同的目的配置DataProtector:

_protector = provider.CreateProtector("TestEncryption");

但是,当我尝试解密时,我会遇到以下异常:
CryptographicException:有效负载无效。

1 个答案:

答案 0 :(得分:2)

在应用程序之间共享数据保护密钥。您可以将其存储在本地文件系统,Azure存储或Redis缓存中,或使用其他第三方分布式存储。例如:

public decimal Data { get; set; }

public int RoundedData
{
    get { return Convert.ToInt32(Math.Round(Data, 0)); }
}

文档:Key storage providers