如何在azure blob存储中加密/解密blob。我试过以下但是当我使用不同的秘密下载blob,而不是得到任何错误,我能够下载没有任何问题。我错过了 什么?这是我的代码:
string secretKey = "https://testkeyvault.vault.azure.net:433/secrets/SampleSecret1";
KeyVaultKeyResolver cloudResolver = new KeyVaultKeyResolver(AzureHelper.GetAccessToken);
IKey cloudKey1 = cloudResolver.ResolveKeyAsync(secretKey, CancellationToken.None).GetAwaiter().GetResult();
BlobEncryptionPolicy encryptionPolicy = new BlobEncryptionPolicy(cloudKey1, cloudResolver);
client.DefaultRequestOptions.EncryptionPolicy = encryptionPolicy;
client.DefaultRequestOptions.RequireEncryption = true;
CloudBlockBlob blob1 = container.GetBlockBlobReference("blockblob2"); // this blob was uploaded using a different secretKey
using (FileStream file = new FileStream(@"C:\Test\test2.txt", FileMode.Create))
{
blob1.DownloadToStream(file);
}
AzureHelper.GetAccessToken:
internal static async Task<string> GetAccessToken(string authority, string resource, string scope)
{
ClientCredential credential = new ClientCredential(ConfigurationManager.AppSettings.Get("ClientId"), ConfigurationManager.AppSettings.Get("ClientKey"));
AuthenticationContext ctx = new AuthenticationContext(new Uri(authority).AbsoluteUri, false);
AuthenticationResult result = await ctx.AcquireTokenAsync(resource, credential);
return result.AccessToken;
}