我有一个.NET Core应用程序,并且我的某些数据使用数据保护密钥(例如K1)进行了加密。
但是在多服务器实例场景中,我遇到了一个问题,因为实例的每个运行时都会生成单独的加密密钥,因此实例无法解密彼此的数据。
因此,我找到了以下解决方案,将加密密钥存储到azure blob存储中,并使所有实例使用同一密钥。
services.AddDataProtection()
.SetApplicationName(applicationName)
.PersistKeysToAzureBlobStorage(container, blobName)
;
但是在添加上面的代码之后,一个新的加密密钥(例如,用K2代替) K1)被存储在Blob存储中。
因此,未使用密钥K1加密的旧数据不会被解密。
我是否可以找到一种解决方案来保留旧密钥或更好的密钥旋转技术而又不丢失已经加密的数据?