注意:下面的METHOD为一个算法,根据情况可以是MD5或者BASE64,非特别说明,本文默认以MD5为例。
二维码格式如下
二维码内容=METHOD(学工号)-生成时间-MD5校验码
其中学工号大小写敏感,生成时间为1970年到当前时间的秒数
例如091d46858f75a02559cc242cd1833727-1577461234-40e2fdbc88820544b029d067ae849bd8
其中MD5校验码计算方法为
Md5(METHOD(学工号)-生成时间-约定的密码)
其中学工号和密码大小写敏感,密码中不能有间隔符”-”,生成的MD5值为32位小写字符
如学工号NO.00001在2019-12-27 15:40:34(1577461234)生成二维码,约定密码为123456,则生成过程为
METHOD(NO.00001)=091d46858f75a02559cc242cd1833727
计算MD5(091d46858f75a02559cc242cd1833727-1577461234-123456)=45f14d3fea2cf388c48b5aa97205474d
最终的二维码为091d46858f75a02559cc242cd1833727-1577461234-45f14d3fea2cf388c48b5aa97205474d
另外,如果需要授权到控制器上脱机使用(控制器可直接支持动态二维码脱机验证),将MD5(METHOD(学工号))结果中的前16字节字符串(转成卡号实际是8个字节)写入到控制器即可。
以工号 NO12345 为例(注意,这里是以METHOD为BASE64为例计算的)
LEFT(MD5(BASE64(NO12345)),16)
=LEFT(MD5(Tk8xMjM0NQ==),16)
=LEFT(4bdd0ff833f6a0c9383e81d31ecf2b75,16)
=4bdd0ff833f6a0c9
分成前8字节后8字节从16进制转10位10进制
权限结构中的high填充为 4bdd0ff8=>1272778744
权限结构中的low 填充为 33f6a0c9=>0871801033
动态二维码权限在控制器上对应的20位卡号=>12727787440871801033