我正在以下列方式加密表格。
public TableRequestOptions EncryptTableStorage()
{
// Create the IKey used for encryption.
var key = new RsaKey("mykey");
var policy = new TableEncryptionPolicy(key, null);
TableRequestOptions options = new TableRequestOptions()
{
EncryptionPolicy = policy
};
return options;
}
我的加密实体
[EncryptProperty]
public string ConsumerId { get; set; }
在检索时,我使用以下代码
var query = new TableQuery<CloudModelDetail>().Where(TableQuery.GenerateFilterCondition("PartitionKey", QueryComparisons.Equal, cloudModelDetail.PartitionKey));
foreach (var entity in azureStorageAccount.VerifyCloudTable.ExecuteQuery(query, azureStorageAccount.EncryptTableStorage()))
{
Console.WriteLine("{0}, {1}\t{2}\t{3}", entity.PartitionKey, entity.RowKey,
entity.ConsumerId, entity.ScoreVariables);
}
我收到错误说解密错误。内部异常表示&#34;解码OAEP填充时发生错误。&#34;
答案 0 :(得分:0)
我还尝试了您的代码和官方document代码。如果我们查询表中查询结果中只有一个实体,那么我们就可以正确获取解密信息。如果有多个实体,那么它将得到相同的错误“解码OAEP填充时出错”。如你所说。似乎SDK目前不支持一次查询更多实体。我们可以向Azure storage SDK项目报告我们的要求,也可以向我们的feedback Azure团队报告。
<强>更新强>
演示代码:
if (proc->is_from_method) {
return vm_invoke_bmethod(th, proc, self, argc, argv, passed_block_handler);
}
else {
return vm_invoke_proc(th, proc, self, argc, argv, passed_block_handler);
}
答案 1 :(得分:0)