云服务器内容精选

  • 加密过程与加密套件 OBS Java SDK提供了两个不同的加密套件生成器,分别是基于AES-CTR加密方法的CTRCipherGenerator与基于RSA + AES-CTR加密的CtrRSACipherGenerator。 使用CTRCipherGenerator上传对象时,用户需要提供一个用来加密数据的数据密钥,SDK将会针对每个对象随机生成一个初始值,并使用数据密钥与初始值加密对象,加密完成后将加密后文件上传至OBS,并将对应的初始值存储至对象元数据中。下载该对象时,用户需要提供对应的数据密钥,SDK会自动获取保存在对象元数据中的初始值,使用数据密钥与初始值解密对象并返回。下载时如果提供了与加密时不同的数据密钥,SDK也将返回不可用的解密后文件。 使用CtrRSACipherGenerator上传对象时,用户需要提供一个RSA 公钥,SDK会针对每个对象随机生成一个数据密钥和初始值,并使用数据密钥与初始值加密对象,加密完成后将加密后文件上传至OBS,随后会使用RSA密钥加密数据密钥,并将加密后的数据密钥与初始值存储至对象元数据中。下载该对象时,用户需要提供对应的RSA私钥,SDK会自动获取保存在对象元数据中的数据密钥与初始值,并使用私钥解密数据密钥,如果提供的私钥与上传时使用的密钥不匹配,将会抛出异常。解密成功后,SDK将会使用解密后的数据密钥与初始值解密对象并返回。
  • 元数据中的解密信息 SDK会将解密所需的必要信息存至对象的对象自定义元数据,并且不会有其他备份,如果您对这些数据进行了修改,将会造成数据无法解密,需要保存的信息及其含义如下表: 表2 参数名称 是否可选 描述 encrypted-algorithm 必选 加密套件的信息。 encrypted-object-key 必选(使用RSA加密套件时) 使用RSA密钥加密后的数据密钥。 encrypted-start 必选 加密该对象所使用的初始值经Base64编码后的字符串。 master-key-info 可选 加密密钥的信息。 plaintext-sha256 可选 加密前对象的sha256,流式上传不计算sha256。 plaintext-content-length 可选 加密前对象的长度,流对象在上传之前无法获取长度。 encrypted-sha256 可选 加密后对象的sha256,流式上传不计算sha256。