收藏
回答

设备获取SecretNo返回无效的签名

在服务商平台添加了设备,还勾选了使用同一初始secretno选项,根据获取SecretNo协议说明发送了请求,但总是返回无效的签名,关于sha1(sort(sn、seedSecretNo、timestamp、nonce, “secret_no”))这个说明还是不太确定,按字母排序,从小到大拼成字符串,意思试把这几个字符串先拼在一起再去按每个字符的大小从小到大排序,还是直接拼接起来就行了,我两种都试了还是不行,比如:

sn:202012091140

seedSecretNo:2799d9716183eff89fb88b2e31bdb794

timestamp:1607495021

nonce:740882966

sort之后:2020120911402799d9716183eff89fb88b2e31bdb7941607495021740882966secret_no

sha1之后:3827ebb742ad55d55fc81d425026d29be7bf6d57

{"cmd":"get_secret_no","headers":{"req_id":"1001"},"body":{"device_signature":"3827ebb742ad55d55fc81d425026d29be7bf6d57","nonce":740882966,"timestamp":1607495021,"sn":"202012091140"}}

返回:{"headers":{"req_id":"1001"},"errcode":600011,"errmsg":"invalid signature, hint: [1607495025_119_4fd3dea0ef8f92b54cae66c76ccd829b], reqid: [1001]"}

另外一种拼接后从大到小排序:00000011111112222233344444566777788889999999_bbbbcddeeeefffnorst,以这样大小排序后也不行,具体规则是怎样的,可以举例说明下吗?





回答关注问题邀请回答
收藏

3 个回答

  • 企业微信运营专员-千夜
    企业微信运营专员-千夜
    2020-12-10

    你好,这里的排序不是按所有的参数大小进行排序,是按参数首字母大小进行排序的

    2020-12-10
    有用
    回复 2
    • 孑
      2021-01-29
      给个案例,很多人都遇到同样的问题了,很难理解。
      2021-01-29
      回复
    • 企业微信运营专员-千夜
      企业微信运营专员-千夜
      2021-01-29回复
      比如 n NZ53MDIW7J, timestamp 1611883328, nonce 13462, secret_no 42b2ed68a853143aa72164317dc5ae01, scene secret_no  入参排序是13462161188332842b2ed68a853143aa72164317dc5ae01NZ53MDIW7Jsecret_no
      2021-01-29
      回复
  • 谢海南
    谢海南
    2021-04-07

    这个seedSecretNo在哪里查看的?我的硬件管理页面怎么没有?

    seedSecretNo:2799d9716183eff89fb88b2e31bdb794

    2021-04-07
    有用
    回复
  • 孑
    2021-01-29

    有案例可以参考么

    2021-01-29
    有用
    回复
登录 后发表内容
问题标签