智慧硬件开发 硬件直连接入 考勤/门禁设备 附录 员工二维码校验规则
员工二维码校验规则
最后更新:2022/01/19
可联系渠道经理采购或代理智慧硬件接口已支持设备 联系渠道经理
员工二维码校验规则
最后更新:2022/01/19

二维码扫码后得到一个base64编码后的buffer,按base64解码后的二进制数据定义如下:

1 Byte1 Byte8 Bytes4 Bytes2 Bytes64 Bytes
versiontypeopenvidstart_timeexpires_insign

参数说明

参数名含义
version数据格式版本号,目前固定是0x01
type签名类型, 0表示是员工, 1表示是访客, 员工二维码固定为 0
openvid员工id,为64位无符号整数, 仅用于员工二维码签名
start_time开始时间,unix时间戳(秒)
expires_in有效时长(秒)
sign签名

签名算法暂定用椭圆曲线非对称加密算法(ECDSA),选取的椭圆曲线为NID_X9_62_prime256v1。

包体签名:
Sign = ECDSA(SHA256(join(version,type,openvid,start_time,expires_in)))
私钥由企业微信保管,设备使用公钥(全量拉取用户数据增量拉取用户数据的pub_key)验证即可。

注:
1、 join的含义是将version,type,openvid,start_time,expires_in对应的数值依次拼接在一起。
2、 SHA256,ECDSA分别是一种哈希算法和非对称加密算法,实现方可以根据自己开发语言找一下现有的成熟算法库。
3、验证签名时,先对签名使用公钥解密,随后计算SHA256摘要是否一致。

上一篇
访客UserId规则说明
下一篇
访客二维码校验规则