# 云函数AES加密
# 简要描述
- 云函数使用 AES 对称加密,算法与请求/响应加解密中的
AES/ECB/PKCS5Padding(加密类型2)完全一致,可直接用 APP 控制台配置的加密密钥互操作。详见 接口规范 · 加解密规则。
# 算法说明(与接口加解密一致)
| 项 | 值 |
|---|---|
| 算法 / 模式 / 填充 | AES/ECB/PKCS5Padding(AES 块长 16,PKCS5 与 PKCS7 等价) |
| IV | 无(ECB 模式) |
| 明文编码 | UTF-8 |
| 密钥编码 | UTF-8 |
| 密钥处理 | 长度不足 32 字节时,右侧用字符 0 补齐至 32 字节(AES-256);≥32 则按原字符串取用 |
| 密文输出 | Base64(无换行) |
对应控制台 / SDK 加密类型:
2=AES/ECB/PKCS5Padding。不要与类型4(AES/ECB/NoPadding,固定 16 位密钥、数据需自行补齐)混用。
# 方法名称
aesEncrypt
# 调用参数
| 参数名 | 必选 | 类型 | 说明 |
|---|---|---|---|
| data | 是 | string | 待加密明文(UTF-8) |
| secretKey | 是 | string | AES 密钥,与接口 encryptSecretKey / 控制台加密密钥相同即可 |
# 调用实例
// 与接口请求加密同一密钥、同一算法
var res = potato.aesEncrypt("hello world", "1234567890123456")
res
1
2
3
2
3
# 调用方法返回示例
Base64 密文字符串(示例形态)
1
# 返回参数
| 参数名 | 必选 | 类型 | 说明 |
|---|---|---|---|
| (返回值) | 是 | string | Base64 编码的密文,可直接作为接口加密后的 value |
# API调用参数
| 参数名 | 必选 | 类型 | 说明 |
|---|---|---|---|
| name | 是 | string | 函数名称 |
| params | 否 | json | 调用参数 |
# API调用实例
{
"name":"testFun"
}
1
2
3
2
3
# API调用请求头
| 参数名 | 必选 | 类型 | 说明 |
|---|---|---|---|
| Content-Type | 是 | string | 此参数必传,当请求数据非json时此参数传对应格式如(multipartform-data,application/x-www-form-urlencoded,等)是json请传application/json |
| askKey | 是 | string | 此参数必传,验证app的令牌 |
| sign | 否 | string | 此参数如果在app设置开启了验签是必传 |
| time | 否 | string | 当开启验签时,此参数为必传 |
| apiUserToken | 否 | string | 用户令牌 |
| nonce | 否 | string | 随机字符串(当开启V3验签此参数必传,且6分钟内不允许重复) |
# API调用返回参数说明
| 参数名 | 类型 | 说明 |
|---|---|---|
| code | string | 状态码200成功,403权限异常或登录超时,500请求异常,203请求无数据 |
| status | int | 状态0删除1使用 |
| data | object | 返回内容,云函数如果没有返回结果则该值为空 |
| res | object | 执行返回数据 |
| param | object | 返回执行参数,可以忽略 |
| nonce | string | 随机字符串(当开启V3验签必返回次参数,且6分钟内不会重复) |
| sign | string | 此参数如果在app设置开启了验签是必返 |
| reqSign | string | 请求签名 |
| time | long | 当开启验签时,此参数为必返回 |
# API调用返回示例
{
"code": "200",
"message": "",
"status": true,
"data": {
"res": "cLpZq8V9K8V9K8V9K8V9Kw=="
},
"pc": null,
"time": null,
"nonce": null,
"sign": null,
"reqSign": null
}
1
2
3
4
5
6
7
8
9
10
11
12
13
2
3
4
5
6
7
8
9
10
11
12
13
# 备注
- 数据或密钥为空、加解密失败时会抛出异常
- 密钥补齐规则与接口一致:不足 32 字节用
0补齐;建议直接使用控制台配置的加密密钥,保证与客户端加解密结果一致 - 填充由
PKCS5Padding自动完成,无需对明文手动补齐到 16 字节倍数 - 与
potato.aesDecrypt成对使用;与客户端 SDK 中AES/ECB/PKCS5Padding互操作 - 更多返回错误代码请查看 错误代码参考
← HMAC-SHA512加密 AES解密 →