对象存储服务 OBS-客户端加密简介:加密过程与加密套件

时间:2023-11-27 10:28:10

加密过程与加密套件

OBS Java SDK 提供了两个不同的加密套件生成器,分别是基于 AES-CTR 加密方法的 CTRCipherGenerator 与基于 RSA + AES-CTR 加密的 CtrRSACipherGenerator。

使用 CTRCipherGenerator 上传对象时,用户需要提供一个用来加密数据的数据密钥,SDK 将会针对每个对象随机生成一个初始值,并使用数据密钥与初始值加密对象,加密完成后将加密后文件上传至 OBS,并将对应的初始值存储至对象元数据中。下载该对象时,用户需要提供对应的数据密钥,SDK 会自动获取保存在对象元数据中的初始值,使用数据密钥与初始值解密对象并返回。下载时如若提供了与加密时不同的数据密钥,SDK 也将返回不可用的解密后文件。

使用 CtrRSACipherGenerator 上传对象时,用户需要提供一个 RSA 公钥,SDK 会针对每个对象随机生成一个数据密钥和初始值,并使用数据密钥与初始值加密对象,加密完成后将加密后文件上传至 OBS,随后会使用 RSA 密钥加密数据密钥,并将加密后的数据密钥与初始值存储至对象元数据中。下载该对象时,用户需要提供对应的 RSA 私钥,SDK 会自动获取保存在对象元数据中的数据密钥与初始值,并使用私钥解密数据密钥,如若提供的私钥与上传时使用的密钥不匹配,将会抛出异常。解密成功后,SDK 将会使用解密后的数据密钥与初始值解密对象并返回。

support.huaweicloud.com/sdk-java-devg-obs/zh-cn_topic_0000001667137498.html