百事1平台注册中心:智能门锁离线密码

发布时间:2023-03-10 16:18 阅读次数:

  当门锁设备离线时,操作人员通过APP获取到密码后并告知用户,用户在门锁上输入后即可开门。

  DP64离线密码设置T0时间DP65离线密码清空单条DP66离线密码清空所有DP67离线密码开锁涉及DP的具体协议见图6。

  离线密码校验主要涉及uint32_t app_port_get_timestamp(void)、int32_t lock_offline_pwd_verify(uint8_t *key, uint8_t key_len, uint8_t *encrypt_pwd, uint8_t encrypt_pwd_len, uint32_t timestamp, uint8_t *plain_pwd, uint8_t *p_plain_pwd_len)这两个函数,其中lock_offline_pwd_verify函数中timestamp参数可以使用app_port_get_timestamp函数的返回值即时间戳作为输入,lock_offline_pwd_verify函数的返回值则为校验结果。上报离线密码开门或清空码使用记录时主要涉及bool app_port_aes128_cbc_encrypt(uint8_t *key,uint8_t *iv,uint8_t *input,uint16_t input_len,uint8_t *output)函数和uint32_t lock_open_record_report_offline_pwd(uint8_t dp_id, uint8_t* pwd)这里两个函数。app_port_aes128_cbc_encrypt函数用于计算加密后的密码数据给到lock_open_record_report_offline_pwd中pwd参数输入百事1平台注册中心。其中app_port_get_timestamp、app_port_aes128_cbc_encrypt函数位于app_port.c文件中;lock_offline_pwd_verify函数位于lock_offline_pwd.c文件中;lock_open_record_report_offline_pwd位于lock_dp_report.c文件中。

  图1获取一次性密码

  图2获取不限次数密码

  图3获取清除单条密码清空码

  图4离线密码解锁记录

  图5清空码使用记录

  可以在APP上如图1和图2获取10位的一次性离线密码、10位的不限次数密码后,当用户在门锁上输入相应的离线密码后,客户开发的应用程序可以调用如下代码校验输入的离线密码是否有效。当不限次数的密码激活(24小时内使用1次)后用户可以在APP上如图3获取清空码(24小时有效期),在门锁上输入清空码后,生效的离线密码就会失效,并且产生一条清空码使用记录如图5。下面代码中的lock_offline_pwd_verify函数主要用来校验离线密码是否有效,并且生成解密后明文密码数据,然后 app_port_aes128_cbc_encrypt使用上面解密后明文密码数据生成上报离线密码开门记录所需的加密后的开锁密码或加密后的清空码,最后调用lock_open_record_report_offline_pwd函数上报离线密码开锁指令或清空码使用记录。

  离线密码最新更详细协议点击查看链接

  图6离线密码相关协议

  FAQ

在线客服 联系方式 二维码

电话

400-888-8888

扫一扫,关注我们