开始使用
  • English
  • 简体中文
前往官网
开始使用
  • English
  • 简体中文
前往官网
  • 开始使用
  • 核心概念
  • 开发指南
  • 设备能力与事件参考
    • 按设备类型浏览
    • 设备能力
      • 通用方法
      • 侦测与告警
      • 图像
      • 云台
      • 灯光
      • 录像
      • 音频
      • 媒体
      • 网络
      • 电源
      • 隐私
      • 呼叫
      • 存储
      • 系统
      • 算法
      • 设备维护
        • device.reboot.execute(重启设备)
        • device.restore.execute(恢复出厂)
        • device.time.sync(平台校时)
        • device.time.get(获取 UTC 时钟)
        • device.timezone.set(设置时区)
        • device.timezone.get(获取时区)
        • device.timezonerule.get(查夏令时规则)
        • device.wifi.current(当前 WiFi)
        • device.wifi.scan(扫描热点)
        • device.wifi.control(连接或断开 WiFi)
        • device.upgrade.process(升级进度)
        • device.upgrade.execute(触发升级)
        • device.name.set(改名)
        • device.cover.refresh(刷新封面)
        • device.password.verify(验密)
        • device.password.set(改密)
      • 控制
    • 事件总览
    • 权限码
    • 错误码
    • 告警与能力消息
    • 常见问题
    • 历史能力与推送类型
  • API 参考
  • SDK 与工具
  • 方案
  • 平台与支持
本页目录
功能详情
请求地址
最小权限
传入参数说明
密码字段加密
样例输入
返回 data 字段说明
样例输出
错误码

device.password.set(改密)

device.password.set:改密

功能详情

入参 oldPasswordV2、newPasswordV2,与 验密 的 passwordV2 同一套 deviceId 上下文加密。验密通过的同一明文,其 passwordV2 密文可直接作为 oldPasswordV2。本方法不会出现在 device.capability.list 里。

请求地址

POST https://openapi-[DataCenter].easy4ip.com/openapi/v2/device.password.set

最小权限

管理员操作自己绑定的设备不需要权限。操作被分享设备需要基础配置权限。子用户绑定不需要。子账号需要 Config。

传入参数说明

参数名参数类型是否必填默认值合法值参数说明
tokenString是管理员、子用户或子账号 accessToken
deviceIdString是设备序列号
productIdString否可省略。传了且与该设备实际型号不一致 → DV2009
oldPasswordV2String是原密码 v2 密文(与 passwordV2 同规则)
newPasswordV2String是新密码 v2 密文(与 passwordV2 同规则;明文强度见下文)

公共请求字段与签名见 签名约定 与 公共请求负载。

密码字段加密

设备密码字段加密(v2 OpenAPI)

适用字段:device.password.verify 的 passwordV2;device.password.set 的 oldPasswordV2、newPasswordV2。三者同一套算法(与绑定页 encryptCodeV2 同族,字段名不同)。

步骤说明
1. 明文设备密码 UTF-8 字符串(newPasswordV2 须先满足下文强度规则再加密)
2. 因子pwdFactor = "op_api_" + appId + "_PWD_KEY_" + deviceId(appId 取请求 system.appId,须与派生时一致)
3. Saltsalt = SHA-256(UTF-8(pwdFactor)) 的前 16 字节
4. PBKDF2PBKDF2WithHmacSHA256:password=deviceId,salt=上一步,迭代 1200 次,导出 256 位 → kdfRaw
5. AES 密钥kdfBase64 = Base64(kdfRaw)(标准 Base64);aesKey = SHA-256(UTF-8(kdfBase64.toUpperCase())) → 32 字节 AES-256 密钥
6. Nonce加密时随机 12 字节(每次加密不同)
7. 加密AES/GCM/NoPadding,GCM tag 128 bit;密文块 = AES-GCM(明文)(含 tag)
8. 传参值Base64(nonce[12] ‖ 密文块),作为对应字段字符串

不使用 appSecret 参与 v2 密钥派生。

新密码明文(仅 newPasswordV2 加密前):长度 8~32;数字、大写字母、小写字母、特殊字符中至少两类;特殊字符为除 '、"、;、:、&、空格外的可见字符;不得含中文。

验密成功后改密:可将本次请求的 passwordV2 整段密文原样填入 oldPasswordV2(同一 appId、deviceId、同一明文)。

样例输入

{
 "id": "d5c287b4-5b2f-4f03-baf5-8032c5c354af",
 "system": {
 "ver": "1.0",
 "appId": "lcdxxxxxxxxx",
 "sign": "xjhCQBoJ9hRDsCjyDcHjtDNzRZ3ZJezcawsfWeiaoxU=",
 "time": 1706511734,
 "nonce": "f5a1ae2d-c09c-4d39-a744-83a5c2c653c2"
 },
 "params": {
 "token": "<yourAccessToken>",
 "deviceId": "TESTIPC000012345",
 "oldPasswordV2": "encrypted-old-v2",
 "newPasswordV2": "encrypted-new"
 }
}

返回 data 字段说明

无业务字段。成功时 code 为 "0",data 为 {}。

样例输出

{
 "id": "d5c287b4-5b2f-4f03-baf5-8032c5c354af",
 "result": {
 "code": "0",
 "msg": "Operation is successful",
 "data": {}
 }
}

错误码

本接口可能返回下列码。

新密码只接受 newPasswordV2。

错误码错误码说明下一步
SN1001签名校验异常按 HTTP 开发规范 核对 sign
TK1002token 无效或过期重新获取 accessToken
OP1002缺少必填参数补必填字段
OP1003参数不合法按本页参数表核对
OP1009权限不足核对 token 与设备绑定/分享权限
OP1013接口总次数超限降低调用频率
OP1014接口日限额超限见 接口调用限额
DV1007设备离线等设备上线

更多见 错误码 · OP/SN/TK。

错误码错误码说明下一步
DV2003设备未声明该属性以 device.capability.list 为准
DV2004写入值超出型号范围核对 properties 取值
DV2007channelId 与 scope 不符通道级必传,设备级不传
DV2008同请求混用设备级与通道级拆分请求
DV2009productId 与型号不一致省略或改为实际型号

更多见 能力错误码。

device.password.verify(验密)
control.ir.studyFailed(红外学习失败)