APP下载

基于MD5的防伪标签生成器设计

2018-05-11王鑫张建新周元钉

科技视界 2018年6期
关键词:二维码

王鑫 张建新 周元钉

【摘 要】在社会发展的过程中,存在着众多的社会问题,其中盗版现象尤为猖獗。无论是文化传播方面还是商品制造方面,盗版是如影随形。尽管有关部门和相关法律法规在一定程度上对假冒伪劣行为采取了严厉打击措施,但时至今日,盗版现象不仅没有得到有效的根除,反而在非法暴利的驱使下,非法分子更是趋之若鹜,盗版行为更有日益漫延之势。鉴于此种情况,借助现有的科技成果,设计一个具有哈希校验功能的防伪二维码生成器,通过Hash函数对商品数据进行数据摘要,生成一个有效二维码。分析表明,该二维码具有信息量广、编译码准确、加密机制、印刷成本低等的优势,在实际应用中可有效打击假冒伪劣行为。

【关键词】二维码;哈希编码;防伪印刷

中图分类号: TP391.44;TB481 文献标识码: A 文章编号: 2095-2457(2018)06-0189-004

【Abstract】In the process of social development,there are many social problems,in which piracy is the particularly serious phenomenon.Whether the cultural dissemination or commodity manufacturing,piracy is as the shadow follows with varieties of goods.Although the relevant departments,laws and regulations take tough measures to crack down on fake and shoddy behavior on a certain extent.But today,the phenomenon of piracy has not been eradicated. However, in driving illegal profiteering,illegal molecular piracy is popular;the piracy is more spreading trend.In view of this situation,a hash function security dimensional code generator is presented with the use of existing scientific and technological achievements.A two-dimensional code is generated on hash function through the data of the commodity data.The analysis shows that the QR code has extensive information,encryption mechanism,accurate and low cost advantages of printing.It can effectively combat counterfeiting behavior in practical application.

【Key words】QR code;Hash encoding;Anti-counterfeiting printing

0 引言

伴随着国内市场经济不断发展,防伪技术在我国的发展也实现质的飞跃。假冒、仿造等现象是与市场经济伴生的副产品,为了保护自身利益,防伪技术应运而生。由于版权所有者对产品防伪需求与意识的不断强化,越来越多的防伪技术方案得到应用和推广,防伪技术市场呈现出百花齐放、百家争鸣的新局面。

就标签市场而言,目前的防伪技术应用主要体现在材料防伪、设计防伪、工艺防伪、IT防伪等方面,可分为以下三个阶段。

(1)标签防伪的初级阶段

标签防伪的初级阶段是单一技术防伪。国内标签印刷最早采用的防伪技术,大多源自与人民币相关的防伪技术,包括防伪纸张、防伪设计、防伪油墨、防伪印刷等。其后,全息图像等技术开始进入标签防伪领域。不过从技术应用上看,最初的防伪大多采用单一技术,即便是有组合应用,也是相对简单的组合形式。

(2)标签防伪第二阶段

标签防伪第二阶段是印刷元素的组合式防伪。印刷组合式技术防伪最初的形式,是将已有的、印刷方面的多种防伪技术,组合运用到一个产品上。如,将防伪设计、防伪纸张、防伪油墨、乃至多种不同的印刷形式等,共同组合到一个产品标签上。防伪不再局限于某种防伪材料、单个防伪工艺,而是变得越来越复杂,成为由多种印刷工艺和防伪技术相融合,具有较高技术含量的综合性防伪。这个理念其实就是人民币防伪的理念,也是目前依然较为流行的防伪形式。

近年来,随着科学技术的发展,其他领域的某些科技成果被移植到标签防伪中,使标签防伪得以跨出印刷领域的范畴,开始进入又一个新的发展阶段。

(3)标签防伪第三阶段

标签防伪第三阶段是跨界技术应用。防伪行业是一个非常具有活力、善于吸收先进技术的产业。很多技术一经出现,就被应用到防伪领域。

以2014年度亚洲标签印制大奖赛中获得智能防伪类金奖的标签为例,这一产品就采用了多种防伪工艺,包括:防偽暗记、手感防伪及彩色可变二维码与隐形可变码对应,背面揭开留底对应正面的号码,印刷工艺采用传统凸版印刷与数码印刷相结合,结合后道印刷工艺。单就这些印刷相关元素而言,这种标签具有个性化多重防伪的独特性,不易被复制与仿冒,已经将印刷组合技术发挥到极致。令其更上一层楼的是,这款标签还加入了纳米颗粒进行防伪,这是纳米技术融入防伪标签的最好例证。

除了纳米技术,目前在标签防伪领域应用的跨界技术,还包括:核径迹技术;电话电码技术;DNA、声纹识别、指纹识别、面部特征识别、人眼虹膜图像识别等生物识别技术;最新的跨界防伪则是印刷与IT技术的结合。

然而,商品的假冒伪劣现象由来已久,尽管各国都在一定程度上采取反盗版措施,以对盗版进行打击,但时至今日,假冒伪劣现象不仅没有得到有效的根除,反而还有日益漫延之势。究其原因,一方面对商品的有效鉴别机制还不完善,另一方面商品的流通监管还存在漏洞,现有措施未能从根本上有效打击假冒伪劣行为。

计算机与通信技术日趋成熟,将计算机技术与通讯技术应用于假冒伪劣产品的打击和监管中,势在必行。特别的,基于现有的二维码技术,有效鉴别商品真伪,监管物品整个流通过程,可有效确保商品真实、打击假冒商品,然而,现有声称的二维码技术并不具备防伪功能,相关报告可见问[1]。

本文,基于上述问题,通过将MD5数字摘要技术结合于防伪标签生成器的设计,基于现有印刷技术,设计一种具有防伪功能的二维码生成器。

1 系统主要软件的介绍

1.1 开发平台eclipse

Eclipse是一个开放源代码的软件开发项目,专注于为高度集成的工具开发提供一个全功能的、具有商业品质的工业平台。它主要由Eclipse项目、Eclipse工具项目和Eclipse技术项目三个项目组成,具体包括四个部分组成——Eclipse Platform、JDT、CDT和PDE。JDT支持Java开发、CDT支持C开发、PDE用来支持插件开发,Eclipse Platform则是一个开放的可扩展IDE,提供了一个通用的开发平台。它提供建造块和构造并运行集成软件开发工具的基础[2]。

1.2 MD5算法

MD5的全称是Message-Digest Algorithm 5(信息-摘要算法),它的作用是让大容量信息在用数字签名软件签署私人密钥前被“压缩”成一种保密的格式(就是把一个任意长度的字节串变换成一定长的大整数)。需要获得一个随机长度的信息并产生一个128位的信息摘要[3]。

MD5算法全名叫信息-摘要算法,是一种有密码的算法,MD5算法可以对任何文件产生一个唯一的MD5验证码,每个文件的MD5码就如同每个人的指纹一样,都是不同的,这样,一旦这个文件在传输过程中,其内容被损坏或者被修改的话,那么这个文件的MD5码就会发生变化,通过对文件MD5的验证,可以得知获得的文件是否完整。

1.3 二维码的编码格式

本课题设计的二维码的编码格式是采用“UTF-8”编码规则,具体规则如下:

UTF-8是Unicode的一种实现方式或者是一种具体的编码格式,也就是对它的字节结构有特殊要求,所以我们说一个汉字的范围是0X4E00-0x9FA5,是指Unicode值,至于放在utf-8的编码里去就是由三个字节来组织,所以可以看出Unicode是给出一个字符的范围,定义了这个字是码值是多少,实现方式可以有多种多样的编码格式来完成[4]。

UTF-8是一种变长字节编码方式。对于某一个字符的UTF-8编码,如果只有一个字节则其最高二进制位为0;如果是多字节,其第一个字节从最高位开始,连续的二进制位值为1的个数决定了其编码的位数,其余各字节均以10开头。UTF-8最多可用到6个字节。

从上述的编码规则可以看出,UTF-8中可以用来表示字符编码的实际位数最多有31位,即上表中x所表示的位。除去那些控制位(每字节开头的10等),这些x表示的位与Unicode编码是一一对应的,位高低顺序也相同。实际中是将Unicode转换为UTF-8编码时应先去除高位0,然后根据所剩编码的位数决定所需最小的UTF-8编码位数。

1.4 二维码数据的设计

(1)产品ID号

产品ID号格式如:mm$$20160212****%%###+陕西省渭南市(最后在放6个汉字)总共位数是21位,编号容量有限,请不要考虑极端情况。

其各个符号所代表的意义。如表1所示:

表1 商品ID号的实际意义

注意:生产厂家代号,本地数据库有一部分,远程数据库全部存储。

(2)本地密钥

本地密钥,分为固定部分+可变部分,总共为16位。

相关规定,如表2所示:

表2 本地密钥相关规定

(3)远程密钥

远程密钥,分为固定部分+可变部分,总共32位。

相关规定,如表3所示:

表3 远程密钥相关规定

可变部分为取月份的前三位英文字+13位随机数。

(4)商品数据

对于商品ID号和密钥的相关规定就如上述所说,在系统正常运行的情况下,按照上面的标准和规则,实例生成了有关几个生产厂家的数据信息,以下是几个商品ID号、本地密钥和远程密钥。如表4所示:

表4 商品数据信息

2 系统程序设计

2.1 界面设计

本次毕业设计的图形界面是采用Java应用程序的图形用户界面(GUI),是由Java.awt、javax.swing等包中定义的组件类对象组成的,依据面向对象机制,每个组件类都封装了该组件的属性和行为。

GUI的組成:包括窗体(Frame)、对话框(Dialog)、面板(Panel)、按钮(Button)、标签(Label)、画板(Canves)、滚动条(Scrollbar)、列表框(List)、文本域(TextField)、文本区(TextArea)、菜单(Menu)等组件,在本系统中主要用到窗体、面板、按钮、标签、文本域等。面板布局采用边界布局(BorderLayout)和网格布局(GridLayout)。同时还应用到监听事件,这只是针对按钮的操作,产生一定的事件反应,已达到既定的效果[5]。

2.2 Hash函数摘要处理

Hash函数对数据信息的摘要处理,即MD5算法主要是对商品数据ID号进行处理,通过HMAC公式进行计算。因为MD5算法是不可以从消息摘要中复原信息的,所以对密钥是一种最好的保护;产生两个哈希值,并与商品ID号级联得到的数据,最后在该数据后面添加商品销售地,用于区域防窜货管理,增加造假者成本,最终得到商品防伪码[6]。

2.3 二维码的生成

本课题中二维码的生成,首先构建了二维码的生成方法类(MatrixToImageWriter),包括格式、大小、内容等;然后在建立生成二维码的类(CodeCreator)中调用上面生成方法类,其中的数据来源于经键盘的输入,在经过HMAC公式运算,得到的哈希值(本地和远程摘要),将商品ID与两个哈希值级联后产生的结果(result),同时加上六个汉字的输入,在程序中对汉字字符串做出了设置,以使汉字数据在二维码中能够显示出来。最终生成的二维码使用图片格式保存在本地,在二维码名称的动态改动下能够连续生成而且不会被覆盖,在软件界面中二维码显示区能够显示生成的二维码图片,得益于Java中的窗体刷新程序,最终能够在生成的同时显示在界面的生成区域。

窗体刷新代码:

public void updateView(String name){

if(label!=null){

frame.remove(panel3);

panel3.remove(label);}}

2.4 程序运行结果

软件运行界面结果,如图1所示:

举以实例

产品ID号:YQ0120160216000201180

本地密钥:QCACsust*Win7802

远程密钥:QCACSUSTremote#&Feb0041551204372;

销售地点:陕西省渭南市

运行结果:

YQ0120160216000201180

afb8303aae1c5dc6a22ee3656e0336b8498e2d3f

e1b0b3c6e65b3f9e5a315d89b82314a66635d721陕西省渭南市

二维码生成如图2所示:

3 总结

本文通过对系统的分析研究,利用Java语言在软件开发平台Eclipse的基础上,设计一种基于MD5算法的具有防伪功能的标签并进行了实验系统的开发。首先,将数据信息进行编码生成二维码,数据信息就是商品相关信息数据,这是整个过程的第一步,然后对数据进行Hash函数摘要处理,最终得到的是信息数据的哈希值,然而,商品的原始数据是不会显示出来的,只有通过扫码仪器进行扫描可以得到商品的原始数据,并且可以知道商品的真假,当然,不是所有的扫码仪器都可以得到商品的信息,这款扫码仪器必须含有相同的Hash算法、商品的信息格式设置、扫描上限次数,等等。与此同时,可以对密钥进行加密,即使展现在用户面前也是进行加密后的密钥,可以杜绝密钥的泄露带来的不必要的麻烦。最终,得到实现具有防伪功能的二维码。

在程序设计过程中,首先设计Java应用程序的圖形用户界面(GUI),然后在软件的运行界面进行编写和调试,最终完成并呈现整个运行界面;在二维码的生成时,采用调用类的方法,首先编写二维码的生成方法,然后在构建新的二维码类中调用上述方法;最后,通过加密算法的嵌入,与键入数据联系起来进行级联得到最终二维码形式的防伪验证码的设计。

【参考文献】

[1]二维码防伪靠谱不靠谱?[J].中国防伪报道,2014:30-32.

[2]David Gallardo.Eclipse平台入门[EB/OL].http://www-900.ibm.com/DeveloperWorks/cn/linux/open-source/os-ecov/index.Shtml,2004.1.

[3]廖东方.二维码电子标签的安全技术研究[D].北京:北京邮电大学,2008.

[4]严蔚敏.《数据结构与算法分析》.清华大学出版社,2011.

[5]孙一林,彭波.Java程序设计案例教程.机械工业出版社,2011.1.

[6]王明振.QR码在Android手机平台的解码算法研究[D].郑州:郑州大学,2011.

猜你喜欢

二维码
二维码通行券自助发行系统在新兴市场的应用
二维码迷宫
二维码
小康二维码
从条形码到二维码
从条形码到二维码
会赚钱的收款二维码
让严肃的二维码呆萌起来
二维码让政务公开更直接
为二维码识别的献礼之作——评测平治二维码门禁读卡器