System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind() 一种生成二维码与校验二维码的技术方法技术_技高网

一种生成二维码与校验二维码的技术方法技术

技术编号:40285825 阅读:6 留言:0更新日期:2024-02-07 20:38
本发明专利技术公开了一种生成二维码与校验二维码的技术方法,所述方法包括:动态二维码的生成,在生码终端上实现,动态二维码的解析,在验码终端上实现;生码终端具有数据存储、数据运算、加解密运算、随机数生成、定时器、屏幕显示的功能,必要情况下,需要有无线或有线联网通讯的能力,可以通过网络与终端后台进行交互,生成动态二维码后,通过屏幕将动态二维码展示;验码终端具备激光扫描器或摄像头,具有数据存储、数据运算、加解密运算等功能;必要情况下,需要有无线或有线联网通讯的能力,可以通过网络与终端后台进行交互;验码终端,通过激光扫描器或摄像头检测二维码的存在,并通过存储与运输。本方法够有效降低二维码被复制、复用的风险。

【技术实现步骤摘要】

本专利技术涉及二维码及其生成和检测,尤其是涉及种生成二维码与校验二维码的技术方法


技术介绍

1、码技术诞生于20世纪80年代末期,发展至今已有形成code49码、pdf417码、datamatrix码、qrcode码等多种二维码格式标准。与传统的一维条码相比,二维码无论是在信息容量、数据精度、纠错能力,还是在编码方式、数据安全上,都有了极大的提升。二维码凭借自身巨大的优势,自诞生后迅速在诸如汽车制造、产品物流等工业领域有了较为广泛的应用。到了21世纪,随着移动互联网技术的急速推广与应用,二维码技术进入了大众的视线范围,并得到了广泛关注与快速发展应用;身份识别、产品溯源、移动支付、信息登记、网站访问、软件下载、门票购买、好友添加等等,到处都有二维码的身影。

2、但二维码的安全问题,一致是无法被忽略的。虽然它将人与人、人与物、线上与线下,便捷地联系起来,但其包含的就是一串字符;可能代表的是一个网址链接、一行文字、一段代码或者一段信息。同时,常见的二维码格式,其编码与解码标准都是公开的,任何人都可以按其标准生成二维码;所以,鉴别一个二维码的来源、内容真实性是困难的。经常会发生,扫描二维码后登录上一个高仿钓鱼网站,导致个人信息泄露或资金损失。在一些对安全性有要求的场合,如身份识别、移动支付、电子票务,这些场景下的二维码通常会使用加密关键数据、增加签名字段、混淆数据字段等方式,来保证二维码中内容的安全性、完整性、真实性;部分安全等级更高的场景还会在二维码内增加时间戳、定时强制刷新二维码等。

3、对二维码内容加密、加签名、加校验,确实可以保证二维码是由可信设备或机构生成、二维码内容真实可靠,但是无法解决二维码被复制的问题。无论二维码的内容如何变化,其最终的展现形式,是一张静态的图片,通过截屏、翻拍甚至手绘的方式,都可以轻易复制一个二维码,并且这个码的内容完全真实正确。在一些条件允许的场合,通过在线验码,可以杜绝二维码被复制,比如在码内增加随机数,每个随机数只可被使用一次,实现一码只可使用一次,类似验证码的效果。但有些场合由于条件限制只能脱机验码,一旦二维码被复制,在二维码过期前,都可以被复制成无数份,且均可通过验证,这对系统安全带来了不小的隐患。所以有必要生成一种不容易被复制、截图的二维码。


技术实现思路

1、为了解决上述问题,本专利技术提出了一种生成二维码与校验二维码的技术方法,使其具有将静态的二维码变为动态,一次展示的不是一张静态图片,而是一组随机张数,随机速度,随机顺序播放的二维码图片,以此种方式避免二维码被简单复制与截图。

2、本专利技术为解决上述技术问题采用以下技术方案:

3、本专利技术的技术方案包括动态二维码的生成与动态二维码的解析两个部分。动态二维码的生成,在生码终端上实现,动态二维码的解析,在验码终端上试下。

4、生码终端,需要具备一定的可编程性,具有数据存储、数据运算、加解密运算、随机数生成、定时器、屏幕显示的功能,必要情况下,需要有无线或有线联网通讯的能力,可以通过网络与终端后台进行交互,在按照以下步骤生成动态二维码后,通过屏幕将动态二维码展示;

5、验码终端,需要具备一定的可编程性,具备激光扫描器或摄像头,具有数据存储、数据运算、加解密运算等功能;必要情况下,需要有无线或有线联网通讯的能力,可以通过网络与终端后台进行交互;验码终端,通过激光扫描器或摄像头检测二维码的存在,并通过存储与运输。

6、进一步的,动态二维码的生成包括以下几个步骤

7、步骤21:生成元数据

8、根据实际业务需要生成多组元数据,比如根据场景需要,元数据有生码时间、二维码有效期、人员姓名、人员编号、人员权限、信息校验位等,将获得的各个元数据,按照约定的要求进行编码与拼接,形成一组特定的字符串;

9、步骤22:初步确定拆分数量

10、普通的静态二维码,一般是将步骤1的字符串,按规则转换成一张二维码图片,或者进行加密后生成二维码图片;动态二维码则是将上述字符串拆分成多个二维码图片并随机播放,故需生成一个随机数;预计需要拆分成多少个二维码,随机数的范围可按照业务字段的长度来设定,不宜小于3,也不宜多于10;

11、步骤23:拆分字符串

12、将步骤1中的字符串,平均拆分成若干块。首先计算用字符串中的字符数量,将该数量除以第三步预估的拆分数;若能被整除,则继续向下执行;若不能被整除,则拆分数需加一,将剩余的字符全部放进最后一块,其余的数据按顺序平均分配;

13、步骤24:生成展示时长随机数

14、为了增加动态二维码的随机性,每个二维码的展示时间,也需要进行随机控制;根据步骤3拆分的数据,生成同样多个随机播放时间,时间的取值范围可控制在0.5s-2s;

15、步骤25:生成乱序播放序列

16、除了每张二维码展示时长随机播放外,其播放顺序也需要随机;根据拆分数量,将这些序号随机排列;

17、步骤26:计算摘要

18、为防止每组数据被篡改、产生跳变,防止二维码图片生成或解析时出现异常,可对拆分后的每组数据生成摘要信息字段;

19、步骤27:组合成新数据

20、根据以上步骤的内容,生成每一张新二维码的原始数据,数据内容包括:当前二维码序号、总二维码数量、当前二维码内容、上一张二维码摘要,下一个二维码摘要,数据头部标记,数据尾部标记,将这些数据组合。

21、步骤28:生成和播放二维码

22、将新的数据生成为二维码图片,将二维码图片,并按照随机序列、随机播放时长,通过屏幕循环播放若干次;

23、步骤29:重新生成

24、按设定要求播放完毕后,转入白屏,若仍需使用二维码,则手动点击刷新二维,重新执行上述步骤;

25、进一步的,动态二维码的解析包括以下几个步骤:

26、步骤31:识别二维码

27、摄像头抓拍二维码图片,按二维码编码规则,解析出其中包括的内容;

28、步骤32:解析二维码格式

29、若解析出的二维码内容,符合约定定义的格式,则保留该二维码,否则删除该二维码;

30、步骤33:对二维码进行排序

31、根据约定格式内容,识别出当前二维码的序号,总二维码图片数量;将二维码按序号依次排序,直至识别出所有的二维码内容并排序后,进行下一步处理;

32、步骤34:解析内容并生成摘要

33、根据约定格式内容,识别出当前二维码内容部分,并按约定的算法计算其摘要信息;将计算获得的摘要内容与下一块包含的摘要内容进行比较,若所有摘要均匹配,则进行下一步;若有任何一处不匹配则删除本次识别的全部二维码字段,重新开始识别;

34、步骤35:拼接业务数据

35、所有摘要均校验匹配后,将二维码内容部分进行拼接,得到一个完整的字符串;

36、步骤36:检本文档来自技高网...

【技术保护点】

1.一种生成二维码与校验二维码的技术方法,其特征在于,所述技术方法包括:

2.根据权利要求1所述的一种生成二维码与校验二维码的技术方法,其特征在于:动态二维码的生成包括以下几个步骤:

3.根据权利要求1所述的一种生成二维码与校验二维码的技术方法,其特征在于:动态二维码的解析包括以下几个步骤:

【技术特征摘要】

1.一种生成二维码与校验二维码的技术方法,其特征在于,所述技术方法包括:

2.根据权利要求1所述的一种生成二维码与校验二维码的技术方法,其特征在于...

【专利技术属性】
技术研发人员:王志峰
申请(专利权)人:南京市市民卡有限公司
类型:发明
国别省市:

相关技术
    暂无相关专利
网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1