# 云函数AES解密
# 简要描述
- 云函数使用 AES 对称解密,算法与请求/响应加解密中的
AES/ECB/PKCS5Padding(加密类型2)完全一致,可解密客户端按同一规则加密的 value,或解密potato.aesEncrypt的结果。详见 接口规范 · 加解密规则。
# 算法说明(与接口加解密一致)
| 项 | 值 |
|---|---|
| 算法 / 模式 / 填充 | AES/ECB/PKCS5Padding(AES 块长 16,PKCS5 与 PKCS7 等价) |
| IV | 无(ECB 模式) |
| 密文输入 | Base64(无换行) |
| 明文输出编码 | UTF-8 |
| 密钥编码 | UTF-8 |
| 密钥处理 | 长度不足 32 字节时,右侧用字符 0 补齐至 32 字节(AES-256);≥32 则按原字符串取用 |
对应控制台 / SDK 加密类型:
2。不要用类型4(AES/ECB/NoPadding)的密文直接解密。
# 方法名称
aesDecrypt
# 调用参数
| 参数名 | 必选 | 类型 | 说明 |
|---|---|---|---|
| data | 是 | string | Base64 编码的密文(接口加密后的 value,或 aesEncrypt 返回值) |
| secretKey | 是 | string | 与加密时相同的密钥(通常即控制台加密密钥) |
# 调用实例
var cipher = potato.aesEncrypt("hello world", "1234567890123456")
var res = potato.aesDecrypt(cipher, "1234567890123456")
res
1
2
3
2
3
# 调用方法返回示例
hello world
1
# 返回参数
| 参数名 | 必选 | 类型 | 说明 |
|---|---|---|---|
| (返回值) | 是 | string | 解密后的 UTF-8 明文 |
# 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": "hello world"
},
"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在解密时自动去除,无需手动去填充 - 与
potato.aesEncrypt成对使用;可直接解密客户端按AES/ECB/PKCS5Padding加密的字段 - 更多返回错误代码请查看 错误代码参考
← AES加密 HTTP GET请求 →