对象存储服务 OBS-客户端加密接口(Java SDK):初始化CryptoCipher
初始化CryptoCipher
OBS Java SDK提供两种加密套件。您可根据使用场景自行选择。
CtrRSACipherGenerator继承于CTRCipherGenerator,不需要提供数据密钥或初始值,只需要提供RSA公钥或RSA私钥,用以加密和解密随机生成的数据密钥。
CTRCipherGenerator仅需提供一个数据密钥,所有对象均使用该数据密钥进行加密。
参数名称 |
参数类型 |
是否必选 |
描述 |
---|---|---|---|
privateKey |
PrivateKey |
解密文件时必选(例如getObject) |
参数解释: RSA私钥。 默认取值: 无 |
publicKey |
PublicKey |
加密文件时必选(例如putObject) |
参数解释: RSA公钥。 默认取值: 无 |
masterKeyInfo |
String |
可选 |
参数解释: 密钥信息,该信息会存至对象的自定义元数据中, 帮助您区分不同密钥,需您自行维护 masterKeyInfo与 密钥的映射关系。 默认取值: 无 |
secureRandom |
SecureRandom |
必选 |
参数解释: 安全随机数生成器,用于随机生成cryptoKeyBytes和cryptoIvBytes,请您根据业务需求选择设置。 默认取值: 无 |
needSha256 |
boolean |
可选 |
参数解释: 是否校验加密后数据的sha256,并设置加密前后的sha256作为自定义元数据。 说明:
为了节省内存开销,SDK 采用了流式计算的方法,这也就意味着,普通上传时需要读取并加密文件两次;在另外由于断点续传上传接口为分段上传接口的封装,在断点续传下,则需要读取并加密文件三次。 取值范围: true:设置need_sha256为true时,SDK会自动计算待上传对象的加密前sha256值与加密后的sha256值,并存至对象自定义元数据,同时也会在发送请求时将加密后的文件的sha256值置于请求头,服务端收到请求后会计算收到对象的sha256,如果sha256不一致会返回错误信息。 false:不计算校验加密后数据的sha256。 默认取值: false |
参数名称 |
参数类型 |
是否必选 |
描述 |
---|---|---|---|
masterKeyInfo |
String |
可选 |
参数解释: 密钥信息,该信息会存至对象的自定义元数据中,帮助您区分不同cryptoKeyBytes,需您自行维护 masterKeyInfo与 cryptoKeyBytes的映射关系。 默认取值: 无 |
cryptoKeyBytes |
byte[] |
必选 |
参数解释: 加密数据所使用的数据密钥。 约束限制: 长度必须为32 bytes。 默认取值: 无 |
cryptoIvBytes |
byte[] |
可选 |
参数解释: 加密数据时所使用的初始值。 约束限制:
默认取值: 无 |
secureRandom |
SecureRandom |
必选 |
参数解释: 安全随机数生成器,用于在未设置cryptoKeyBytes或cryptoIvBytes时随机生成缺失的对应参数,请您根据业务需求设置。 默认取值: 无 |
needSha256 |
boolean |
可选 |
参数解释: 是否校验加密后数据的sha256,并设置加密前后的sha256作为自定义元数据。 说明:
为了节省内存开销,SDK 采用了流式计算的方法,这也就意味着,普通上传时需要读取并加密文件两次;在另外由于断点续传上传接口为分段上传接口的封装,在断点续传下,则需要读取并加密文件三次。 取值范围: true:设置need_sha256为true时,SDK会自动计算待上传对象的加密前sha256值与加密后的sha256值,并存至对象自定义元数据,同时也会在发送请求时将加密后的文件的sha256值置于请求头,服务端收到请求后会计算收到对象的sha256,如果sha256不一致会返回错误信息。 false:不计算校验加密后数据的sha256。 默认取值: false |