
# 加密说明(Node.js SDK)
![](https://support.huaweicloud.com/sdk-nodejs-devg-obs/public_sys-resources/notice_3.0-zh-cn.png)
开发过程中，您有任何问题可以在GitHub上[提交issue](https://github.com/huaweicloud/huaweicloud-sdk-nodejs-obs/issues)，或者在[华为云对象存储服务论坛](https://bbs.huaweicloud.com/forum/forum-620-1.html)中发帖求助。
OBS Node.js SDK支持服务端加密的接口见下表：
| **OBS Node.js SDK接口方法**           | **描述**                                                                                                                                                                                                                              | **支持加密类型**                                    |
|:---|:---|:---|
| ObsClient.putObject               | 上传对象时设置加密算法、密钥，对对象启用服务端加密。                                                                                                                                                                                                          | SSE-KMS SSE-C  |
| ObsClient.appendObject            | 追加上传对象时设置加密算法、密钥，对对象启用服务端加密。                                                                                                                                                                                                        | SSE-KMS SSE-C |
| ObsClient.getObject               | 下载对象时设置解密算法、密钥，用于解密对象。                                                                                                                                                                                                              | SSE-C                                         |
| ObsClient.copyObject              | 1. 复制对象时设置源对象的解密算法、密钥，用于解密源对象。  2. 复制对象时设置目标对象的加密算法、密钥，对目标对象启用加密算法。   | SSE-KMS SSE-C  |
| ObsClient.getObjectMetadata       | 获取对象元数据时设置解密算法、密钥，用于解密对象。                                                                                                                                                                                                           | SSE-C                                         |
| ObsClient.initiateMultipartUpload | 初始化分段上传任务时设置加密算法、密钥，对分段上传任务最终生成的对象启用服务端加密。                                                                                                                                                                                          | SSE-KMS SSE-C     |
| ObsClient.uploadPart              | 上传段时设置加密算法、密钥，对分段数据启用服务端加密。                                                                                                                                                                                                         | SSE-C                                         |
| ObsClient.copyPart                | 1. 复制段时设置源对象的解密算法、密钥，用于解密源对象。  2. 复制段时设置目标段的加密算法、密钥，对目标段启用加密算法。                     | SSE-C                                         |
   
OBS Node.js SDK两种加密方式支持的请求参数：
| **加密类型**                                     | **OBS Node.js SDK对应请求参数** | **说明**                                                                        |
|:---|:---|:---|
| SSE-KMS  | SseKms                    | 表示服务端加密是SSE-KMS方式，目前仅支持：**kms**。                                              |
| SSE-KMS  | SseKmsKey                 | 表示SSE-KMS方式下的主密钥，可为空。                                                         |
| SSE-C                                        | SseC                      | 表示服务端加密是SSE-C方式，目前仅支持：**AES256**。                                             |
| SSE-C                                        | SseCKey                   | 表示SSE-C方式下的密钥，由AES256算法得到。上传对象时作为加密密钥；下载对象时作为解密密钥。                            |
| SSE-C                                        | CopySourceSseC            | 适用于ObsClient.copyObject和ObsClient.copyPart，表示以SSE-C方式解密源对象，目前仅支持：**AES256**。  |
| SSE-C                                        | CopySourceSseCKey         | 适用于ObsClient.copyObject和ObsClient.copyPart，表示以SSE-C方式解密源对象时使用的密钥，由AES256算法得到。 |
   
