商品防伪码的生成和检验方法与流程

文档序号:16070407发布日期:2018-11-24 13:08阅读:1114来源:国知局

本发明涉及防伪码领域,尤其涉及商品防伪码的生成和检验方法。

背景技术

防伪码是近年来在我国兴起的一个潮流行业,我国是一个生产制造业大国,生产的产品遍布全世界,但一些不法分子利用这些条件大肆仿冒合格产品,酿成了我国的食品,电子,农业的灾难。不法分子建立小作坊生产商品给消费者带来了很大的损失。鉴于此我国防伪行业才蓬勃发展起来,防伪码就是其中一种防止产品被伪造办法。



技术实现要素:

本发明提供一种更高效的商品防伪码的生成和检验方法。

所述商品防伪码的生成和检验方法,包括如下步骤:

(1)首先提供用于制作防伪码的初始信息源及辅助信息源,其中初始信息源为在商品属性中取其中两个不完全相同、长度均为l、同属于同一元素集k的信息作为技术中所使用算法的“种子”,记为k1、k2;其中辅助信息源为任何一种种类的从上述元素集k到数字表示的映射表;

(2)用上述信息源生成防伪码校验码:选取一种非可逆的哈希加密方式作为校验码生成的数据源,要求以此哈希加密方式加密的结果为定长值,设其长度为mbit;选取一种二进制到字符映射作为校验码字符的生成方式,要求被映射到的字符所属字符集是字符集a的一个子集,记为字符集b,且a=b∪c,且当映射的源长度一定时,映射结果长度也一定;

(3)用上述信息源生成防伪码识别码:由计算机按照随机方式生成长度为t的随机码,要求编码符合如下规范,每一随机码等长且长度为t,且t>l;随机码中每一字符均属于字符集a中的元素,并区分大小写;随机码中一定含有至少一位属于字符集c;

(4)按照上述选取的哈希加密方式,对识别码进行加密,可得到mbit的密文,通过上述二进制到字符的映射,由于要求了定长,可得到长度一定为n的映射结果s,以上述信息k1的映射值对n取模,可以得到与k1元素个数一致的偏移量f1,按照这个偏移量和顺序,在s中取出映射结果字符,取出结果就是校验码,记为k;

(5)以上述信息中的k2的映射值对t取模,可以得到与k2元素个数一致的偏移量f2;在识别码中按从左到右的方式查找第一位属于字符集c的字符,并以该字符之前作为偏移量为0的位置,以f2所示偏移量,按照元素顺序一一对应地将k3插入到识别码中相应偏移量的位置,其中偏移量相同时,该偏移位置元素顺序靠前的放置在该偏移位置的左部,以此类推;当偏移量超出识别码字符串末端时,偏移计数转至识别码字符串首端处理且识别码字符串首字符的右部视为字符串末端字符右部偏移量的下一偏移量。

本发明实施例还提供了一种防伪码的校验方法,包括如下步骤:

(1)在防伪码中按从左到右的方式查找第一位属于字符集c的字符,并以该字符之前作为偏移量为0的位置,通过k2算出产品偏移量f2,按照元素逆序一一对应地将相应偏移量的位置的字符取出来,取出结果即为假想的校验码k3,剩余部分即为假想的识别码rm,从而将防伪码中的识别码rm跟校验码k3分离出来;

(2)通过k1按照生成方法计算出厂商偏移量f1并继续按照生成方法以假想的识别码rm来计算出实际的k3,如果实际的k3与假想的k3一致,则认为校验码通过校验,可以继续执行下一环节,如果能通过校验,则说明该防伪码是假的;

(3)在上一步中能通过校验码校验时,则将假想的识别码与持久数据源中的原始识别码比对,如果比对成功则最终认为商品为真,从而达到防伪效果。

实施本发明实施例,具有如下有益效果:

本发明实施例防伪码的生成及校验方法,合理利用多次映射和不可逆加密方式生成防伪码,使防伪码可以无限生成且即使方法被破解也无法自行生成相应的防伪码,保密性强、耐破解性强,充分考虑计算机的执行特点,在校验阶段不需要对具有海量数据的持久性数据源进行比对操作,只利用较快的内存和cpu对防伪码样本进行第一步验证,从而减少大量磁盘io操作,提高了执行效率,降低了布署成本。

附图说明

图1是校验码的生成实施例中生成校验码的第一步;

图2是校验码的生成实施例中生成校验码的第二步;

图3是校验码的生成实施例生成校验码的示意图;

图4是防伪码校验方法实施例中生成防伪码的第一步;

图5是防伪码校验方法实施例中生成防伪码的第二步;

图6是防伪码校验方法实施例中生成防伪码的第三步;

图7是防伪码校验方法实施例中生成防伪码的第四步;

图8是防伪码校验方法实施例中生成防伪码的第五步。

具体实施方式

为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明作进一步地详细描述。

本发明实施例商品防伪码的生成和检验方法:

一、信息源

1、初始信息源

要实施所述的防伪码生成,需要具备一定的初始信息,如商品所属厂商信息、商品名称、批次信息等,取其中两个不完全相同、长度均为l(l>0)、同属于同一元素集k的信息作为技术中所使用算法的“种子”,记为k1、k2。这里的长度l会成为下文中校验码的位数。

例如:厂商名称为“淘真宝科技”,产品名称为“真宝码防伪”取这两个等长的信息作为信息源,这两个信息均属于汉字字符集。

2、辅助信息源

要实施所述的防伪码生成,需要一个辅助的信息,这个辅助信息可以是任何一种种类的从上述元素集k到数字表示的映射表(如,汉字在某一字典中的页码所构成的映射表、汉字的四角号码所构成的映射表、汉字的unicode代码所构成的映射表等、自制的密码字典所构成的映射表等),元素集k中的任意一个字符均可在该映射表中得到对应的数字编码,这种映射的重码程度越低,则在进行防伪码生成时生成的防伪码越可靠和不易破解。

例如:以四角号码作为映射表,则上述k1、k2分别为:

k1:淘(37120)真(40801)宝(30103)科(24900)技(54047)

k2:真(40801)宝(30103)码(17627)防(70227)伪(24227)

二、防伪码生成方法

1、防伪码的构成

防伪码由识别码和校验码两部分共同构成,这两部分是互相以一定方式掺杂而成的。

2、识别码的生成

由计算机按照随机方式生成长度为t的随机码,要求编码符合如下规范:

(1)每一随机码等长且长度为t,且t>l;

(2)随机码中每一字符均属于字符集a中的元素,并区分大小写;

(3)随机码中一定含有至少一位属于字符集c(见本节3中叙述)。

达到这一规范的随机码可以作为识别码。

3、校验码的生成

选取一种非可逆的哈希加密方式作为校验码生成的数据源,要求以此哈希加密方式加密的结果为定长值,设其长度为mbit,如可以选取md5、sha、ripemd等哈希加密方式。

选取一种二进制到字符映射作为校验码字符的生成方式,要求被映射到的字符所属字符集是字符集a的一个子集,记为字符集b,且a=b∪c,且当映射的源长度一定时,映射结果长度也一定。

例如:可以按照下述方式取字符集:a={0-9(number),a-z(upperalphabet),a-z(loweralphabet),_(underline),-(dash)};二进制到字符的映射取十六进制映射的大写表示,则被映射到的字符所属字符集为b={0-9,a-f};则字符集c={g-z,a-z,_,-}按照上述选取的哈希加密方式,对识别码进行加密,可得到mbit的密文,通过上述二进制到字符的映射,由于要求了定长,可得到长度一定为n的映射结果s。以上述信息k1的映射值对n取模,可以得到与k1元素个数一致的偏移量f1,按照这个偏移量和顺序,在s中取出映射结果字符,取出结果就是校验码,记为k3。

例如:

随机生成且符合条件的识别码为fa32g96xyterkkssayuiqwdb,其长度为t=24。对识别码采用sha256方式加密可得到如下长度为m=256bit的密文“1001000001001101000110111111110000011110101110000000110101100010001110001000101100101000101111110011100100001000011101000111101110010000100110101110110100010100000110001001010101011110000000000001011111011010000100101100000111011011101011101100100001100010”,采用十六进制0-f表示的映射方法,可得到长度为n=64字符的映射结果s:904d1bfc1eb80d62388b28bf3908747b909aed1418955e0017da12c1dbaec862。以k1的五个元素的四角号码映射值对n=64取模,得如下结果:

淘(37120):37120mod64=0

真(40801):40801mod64=33

宝(30103):30103mod64=23

科(24900):24900mod64=4

技(54047):54047mod64=31则以f1=0,33,23,4,31为偏移量在s中取出相应字符9,0,f,1,b:即按顺序为k3=9,0,f,1,b,此即为校验码;

4、使识别码与校验码以一定方式混合形成防伪码以上述信息中的k2的映射值对t取模,可以得到与k2元素个数一致的偏移量f2。

例如:

随机生成且符合条件的识别码为fa32g96xyterkkssayuiqwdb,其长度为t=24。以k2的五个元素的四角号码映射值对t=24取模,得如下结果:

真(40801):40801mod24=1

宝(30103):30103mod24=7

码(17627):17627mod24=11

防(70227):70227mod24=3

伪(24227):24227mod24=11

将此结果作为偏移量,即f2=1,7,11,3,11

在识别码中按从左到右的方式查找第一位属于字符集c的字符,并以该字符之前作为偏移量为0的位置,以f2所示偏移量,按照元素顺序一一对应地将k3插入到识别码中相应偏移量的位置,其中偏移量相同时,该偏移位置元素顺序靠前的放置在该偏移位置的左部,以此类推;当偏移量超出识别码字符串末端时,偏移计数转至识别码字符串首端处理且识别码字符串首字符的右部视为字符串末端字符右部偏移量的下一偏移量。可参考以下代码:

str1=rm.substring(0,index);str2=rm.substring(index);

for(i=0;i<n;i++){

tem=f2[i]+i+1;

if(tem<str2.length){

str2=str2.substring(0,tem)+k3[i]+str2.substring(tem)

}elseif(tem==str2.length){

str2=str2.substring(0,tem)+k3[i]

}else{

str1=str1.substring(0,tem-str2.length)+k3[i]+str1.substring(tem-

str2.length)

}

}

rxm=str1+str2

以上代码中,识别码为rm,识别码插入校验码后记为rxm在识别码中出现第一位属于字符集c的字符位置记为index。

例如:

按上述例子,在识别码fa32g96xyterkkssayuiqwdb中以f2=1,7,11,3,11为偏移量插入k3=9,0,f,1,b的校验码时,其过程为:第一步:确认0偏移量的位置和通过f2的第一元素1确认插入的位置,如图1;

第二步:在图1的元素1位置插入k3的第一个元素9,根据f2找下一个位置,如图2;

同理,按照此逻辑插入,如图3;

此例子防伪码生成已完成,防伪码rxm即时:fa32g9916xyt0erbkfkssayuiqwdb。

三、防伪码校验方法

1、持久性数据源设计

对于持久性数据源,如果在使用时只需要统一的k1和k2,或k1和k2信息已经可以通过外包装等承载物直接获得,则持久性数据源中不需要存储k1和k2信息,仅需要以数据库或字典形式存储识别码信息。如果k1和k2有多种取值,则应将该值以明文或映射的形式存储到效率较高的持久性数据源,同时以数据库或字典形式于效率较低的数据源中存储识别码信息,才能达到可校验的特性。例如:根据前述的k1和k2范例,可将“淘真宝科技”标记为01,“真宝码防伪”

标记为02,并将01、02印刷于瓶盖上,则当得到瓶盖,可以得知k1、k2即可对瓶身上的防伪码进行校验。

2.校验方法

(1)在防伪码中按从左到右的方式查找第一位属于字符集c的字符,并以该字符之前作为偏移量为0的位置,通过k2算出产品偏移量f2,按照元素逆序一一对应地将相应偏移量的位置的字符取出来,取出结果即为假想的校验码k3,剩余部分即为假想的识别码rm,从而将防伪码中的识别码rm跟校验码k3分离出来。

例如:

防伪码rxm=fa32g9916xyt0erbkfkssayuiqwdbk2:真宝码防伪=》f2=1,7,11,3,11第一步:确认偏移量为0的位置,通过f2最后一位元素11取出最后一位校验码b,如图4;

第二步:通过f2的第四位元素3取出校验码1,如图5;

第三步:通过f2的第三位元素11取出校验码f,如图6;

第四步:通过f2的第三位元素7取出校验码0,如图7;

第五步:通过f2的第三位元素1取出校验码9,如图8;

经过以上的过程得出结果校验码:k3=9,0,f,1,b;识别码rm=fa32g96xyterkkssayuiqwdb。

(2)通过k1按照生成方法计算出厂商偏移量f1并继续按照生成方法以假想的识别码rm来计算出实际的k3,如果实际的k3与假想的k3一致,则认为校验码通过校验,可以继续执行下一环节,如果能通过校验,则说明该防伪码是假的(即商品是假的)。(3)在上一步中能通过校验码校验时,则将假想的识别码与持久数据源中的原始识别码比对,如果比对成功则最终认为商品为真,从而达到防伪效果。

四、可选的数据处理方式

1、“加盐”

在实际应用中,出于迷惑和避免第三方破解防伪技术的目的,可以在防伪码的一到多个固定位置进行“加盐”操作,即随机生成一定数量的无关字符插入到防伪码中,在校验时,先将该部分字符取出舍弃。

2、转换大小写

在实际应用中,出于迷惑和避免第三方破解防伪技术的目的,可以将防伪码中一到多个固定位置的字母进行大小写转换或再做一次映射转换,在校验时,先将该部分字符转换大小写或实施逆映射即可。

3、持久性数据源的元数据

在实际应用中,出于在持久性数据源中可以快速查找识别码的目的,可以在防伪码中一到多个固定位置插入持久性数据源的编号、主键、分块等元数据信息,在校验时,先行取出该部分信息留用即可。

五、本方法的优点

1、设计角度

合理利用多次映射和不可逆加密方式生成防伪码,使防伪码可以无限生成且即使方法被破解也无法自行生成相应的防伪码,保密性强、耐破解性强;

2、实施角度

充分考虑计算机的执行特点,在校验阶段不需要对具有海量数据的持久性数据源进行比对操作,只利用较快的内存和cpu对防伪码样本进行第一步验证,从而减少大量磁盘io操作,提高了执行效率,降低了布署成本。

以上所揭露的仅为本发明一种较佳实施例而已,当然不能以此来限定本发明之权利范围,因此依本发明权利要求所作的等同变化,仍属本发明所涵盖的范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1