我有一个ASP.NET核心应用程序和一个需要共享相同数据库条目的.NET Core命令行应用程序。我想加密其中一个列,但仍然可以让两个应用程序读取条目。我一直在研究DataProtection apis的加密,但可以弄清楚如何在两个应用程序之间解密。有什么建议吗?
在这两个应用中,我尝试使用相同的目的配置DataProtector:
_protector = provider.CreateProtector("TestEncryption");
但是,当我尝试解密时,我会遇到以下异常:
CryptographicException:有效负载无效。
答案 0 :(得分:2)
在应用程序之间共享数据保护密钥。您可以将其存储在本地文件系统,Azure存储或Redis缓存中,或使用其他第三方分布式存储。例如:
public decimal Data { get; set; }
public int RoundedData
{
get { return Convert.ToInt32(Math.Round(Data, 0)); }
}