.NET Azure 存储客户端库支持加密用于插入和替换作的字符串实体属性。 加密字符串以二进制属性的形式存储在服务上,解密后将其转换回字符串。
对于表,除了加密策略之外,用户还必须指定要加密的属性。 这可以通过指定 [EncryptProperty] 属性(对于派生自 TableEntity 的 POCO 实体)或请求选项中的加密解析程序来完成。 加密解析程序是一个委托,它接收分区键、行键和属性名称,并返回一个布尔值,指示该属性是否应加密。 在加密期间,客户端库使用此信息来决定是否在写入线路时加密属性。 委托还提供了有关如何加密属性的逻辑的可能性。 (例如,如果 X,则加密属性 A;否则加密属性 A 和 B。)读取或查询实体时不需要提供此信息。
合并支持
目前不支持合并。 由于以前可能已使用不同的密钥对属性的子集进行加密,因此只需合并新属性并更新元数据会导致数据丢失。 合并要么需要执行额外的服务调用来读取预先存在的实体,要么为每个属性使用一个新键,这两种方法都因为性能原因而不适合。