基于网码的商品防伪系统的制作方法

文档序号:6563253阅读:440来源:国知局
专利名称:基于网码的商品防伪系统的制作方法
技术领域
本发明涉及一种商品防伪系统,涉及密码学,cti(电信与计算机集成),中间件,数据库系统等领域,具体地说是一种基于网码的商品防伪系统。
背景技术
目前已有的防伪技术有激光标贴,荧光油墨,温变油墨,隐形标志等。这些技术都属于第一代防伪技术,具有以下缺点1 利用某种特定技术或材料将防伪信息制作到防伪标识物上,每类标识物的防伪信息均相同,防伪标识物与商品没有一一对应关系。
2 只要采集到的防伪标识样本,或者获得制造设备、工艺及材料即可批量仿制。
3 要准确鉴别出防伪标识的真伪,需要专业人员的仪器,普通消费者很难鉴别。
第二代防伪技术采用以计算机结合网络技术(身份码识别技术(及常见的电码防伪))的手段,如中国专利98112924.2《计算机网络商品防伪系统》、中国专利99125163.6《商品防伪方法和商品防伪系统》等,其技术手段大都是利用计算机为生产企业的产品提供商品根码(身份码),通过加密处理得到商品子码,并通过载体附于商品上,由消费者根据所购买的商品通过信息传媒与生产企业沟通(电话查询身份码),辨别所购买商品的真伪。由于各企业所生产的商品不同,提供商品的码也不同,使消费者很难分清,同时,这些不规则的编码的防伪效果差,也不安全。这种防伪存在着以下缺点防伪查询手段单一,查询电话费用高昂,给消费者带来大量不方便。

发明内容
根据上述现有技术部分存在的缺陷,本发明的目的是提供一种安全性高、便于查询、使用可靠、技术先进的基于网码的商品防伪系统。
本发明采用的技术方案是该系统采用模块化结构,部件之间接口互联,包括一个web查询服务器1,web查询服务器1设置有防火墙2,通过防火墙2与INTERNET连通;一个电话查询服务器3,电话查询服务器3通过电话线4与通讯网连通;一个交换机5;
一个数据服务器6;其特点是web查询服务器1、电话查询服务器3、数据服务器6与交换机5互连,作为查询支持硬件平台。
网码长度为20位;采用中间件作为加密、解密核心件;采用ISAPIQuery Components作为支持WEB防伪查询的核心软件;采用运行在统一消息平台上的程序作为支持电话防伪查询的核心软件。
中间件,是在计算机硬件和操作系统之上,支持应用开发和运行的软件,它能够使应用系统相对独立于计算机硬件和操作系统平台,具有标准的程序接口和协议,可以实现不同硬件和操作系统平台上的数据共享和应用互操作,是一个用API定义的分布式软件管理框架,具有强大的通信能力和良好的可扩展性。
中间件封装了以下功能函数(1)验证网码真假的库函数;(2)支持cti平台的网码真假验证库函数;(3)批加密库函数;(4)有效原文加密库函数;(5)密文解密库函数。
本发明的其他特点是加密是将14位纯数字组成的产品码编码进行加密为20位纯数字串构成的防伪码,所述解密是将20位纯数字串构成的防伪码解密为14位纯数字串。
验证网码真假的库函数形式为接口描述函数形式char*query参数为char strPswordID,char sServerName,char sDBName,char*sUserID,char*sPasswwrd,char*sFilePaths验证、查询结束后,将查询结果返回若查询成功,则返回结果为26位有效字符串,构成形式如下前4位是查询结果,格式为XXXX,其中XXXX的值域为0000--9999,0000中的第4个0表示输入的防伪码不存在,即次数为0,0004表示查询过4次,依次类推,最多查询次数为9999次;从第5位到第12位为查询时间,若时间的格式为“年、月、日”如20000713;后14位为网码所对应的明文;否则返回如下信息字符串
“-3”表示找不到文件的路径,此时,SinOutParam的值为FileNoFound12345678900987654321;“-2”表示输入的防伪号码不足20位,sInOutParam为原传入的值;“-1”表示输入的防伪号码长度超过了20位,sInOutParam为原传入的值;“0”表示数库异常信息,如数据库信息设置错误;支持cti平台的网码真假验证库函数形式为接口描述函数形式extern“C”UINTPASCAL EXPORT ScePUERY参数为LPVOIDpNoUse,char*sInOutParam;执行查询完后,若查询成功将把查询的结果又填入sInOutParam;查询返回结果和sInOutParam值类型信息如下-3表示找不到密文件的路径,此时,sInOutParam的值为FileNoFound12345678900987654321;-2表示输入的防伪号码不足20位,sInOutParam为原传入的的值;-1表示输入的防伪号码长度超过了20位,sInOutParam为原传入的值;0表示数据库异常信息、,如数据库信息设置错误;1表示查询结果合法;批加密库函数形式为接口描述函数形式extern“C”char*_stdcall BatchEncryption参数为char*sBatchID,char*sStartID,char*sEndID,intnBatchcount,char*sFileLocationnBatchCount对应开该商品编号和批号的加密批次,有效值范围1,----9999,即同类商品最多可加密9999次;sFileLocation批加密文件的路径。
SStartID,sStartID,sEndID均为定长字符串,不足特定的位数均按异常处理并给出异常信息。
函数返回完成加密后返回18位长的数字字符串,其中18位字符串的构成为4位厂商编号,2位产品种类位日期,4位批次。当批次不足4位时,在批次前补零直至够4位。
有效原文加密库函数形式为接口描述函数形式extern“C”CHAR*_stdcall Encryptidon
参数为char*strOrigText原文长度超过20位返回字符指针“-2”;原文长度不足20位返回字符指针“-1”;合法原文返回结果为20位数字字符串,即密文;密文解密库函数形式为接口描述函数形式extern“C”char*_stdcallDecryption参数为char*strPswdText密文长度超过20位返回字符串指针“-2”;密文长度不足20位返回字符串指针“-1”;合法密文函数返回结果为14位有效字符串,即明文。
ISAPI Query Components是一种与操作系统http服务无缝集成的软件,支持多线程执行查询效率高;内置数据包过滤,3DS身份认证,安全方便;支持远程过程调用(RPC),在异构系统中,升级,移植方便;ISAPI Query Components包含以下功能对组件所有者的进行身份验证,首先确认数据包的发送者可以信任;再对数据包进行过滤,删除恶意用户或黑客的攻击;从数据包中分离出网码,分析该网码符合查询规则与否;调用中间件的“验证web查询的网码真假“库函数,根据函数返回值,将查询结果通过web返回给客户端浏览器;显示给用户;记录查询日志。
统一消息平台上的程序是将语音与数据集成在一个综合系统中,通过系统软件的支持,在该平台上可以实现电话,手机,短消息,邮件等设备的防伪查询。使用户防伪查询更灵活,更方便。
该软件包含以下功能ACD(自动资源分配),IVR(自动语音应答),人工座席服务,转拨打假热线,自动查询功能,SCE(业务定制环境)。利用定制的业务流程可以实现防伪查询,记录日志,语音应答,资源分配等功能。
加密的规则是(1)给定一个长位20位的位置,将14位的数字经过加密后使其成为20位的数字;(2)将定的14位数字分成前6位的批号位和后8位的编号位,然后分别独立加密,使14位原文经加密后存放于给定的20位长饿位置中;(3)加密时,先指定编号随机位、批号随机位和校验为;(4)批号随机位和编号随机位上存放随机生成的0-9之间的一个数字,校验位存放前19位数字之和的个位数字;(5)由批号随机位和编号随机位决定加密的起始位置、批号和编号的字段长位置;(6)移位规则遵循数字位置分配方法,分别分配批号和分配编号;(7)当14位数字已排好后,预留第4、8、15位,用随机数填充最后剩余的3个空余位置;(8)通过建立0-9之间的一一映射表,将排好序的20位有效数字进行函数映射,由此得到的20位数字即为最后的密文。
解密的规则是(1)依密码将密文还原成加密排序结束状态;(2)读取还原后的第4位和第15位即获得密钥;(3)根据有序数对第4位和第15位翻译;(4)按照逻辑次序将密文还原成明文。
本发明采用的网码设计长度为20位,每个入网企业的可用网码量为1亿亿,利用数据库管理。网码生成采用自主开发的加密方法,可靠,稳定,采用统一消息平台作为查询支持平台,以中间件技术作为加解密核心,有效的解决了安全,负载均衡,跨操作平台的问题,整个系统采用模块化结构,各功能部件之间接口明晰,系统易于升级。


图1是本发明的系统结构图。
具体实施例方式
参见图1,本发明的基于网码的商品防伪系统采用模块化结构,部件之间接口互联,包括一个web查询服务器1,web查询服务器1设置有防火墙2,通过防火墙2与INTERNET连通;一个电话查询服务器3,电话查询服务器3通过电话线4与通讯网连通;一个交换机5;一个数据服务器6;web查询服务器1、电话查询服务器3、数据服务器6与交换机5互连,作为查询支持平台。
网码长度为20位。
采用中间件作为加密、解密核心件。
采用ISAPIQueryComponents作为支持WEB防伪查询的核心软件。
采用运行在统一消息平台上的程序作为支持电话防伪查询的核心软件。
中间件,是在计算机硬件和操作系统之上,支持应用开发和运行的系统软件,它能够使应用系统相对独立于计算机硬件和操作系统平台,具有标准的程序接口和协议,可以实现不同硬件和操作系统平台上的数据共享和应用互操作,是一个用API定义的分布式软件管理框架,具有强大的通信能力和良好的可扩展性。
中间件封装了以下功能函数(1)验证网码真假的库函数;(2)支持cti平台的网码真假验证库函数;(3)批加密库函数;(4)有效原文加密库函数;(5)密文解密库函数。
ISAPI Query Components是一种与操作系统http服务无缝集成的软件,支持多线程,执行查询效率高;内置数据包过滤,3DS身份认证,安全方便;支持远程过程调用(RPC),在异构系统中,升级,移植方便;统一消息平台上的程序是将语音与数据集成在一个综合系统中,通过系统软件的支持,在该平台上可以实现电话,手机,短消息,邮件等设备的防伪查询。使用户防伪查询更灵活,更方便。
本系统实现的防伪流程采用现代信息编码发式有计算机生成防伪身份码,然后分二个渠道一个进入专用数据库保存,另一个进入特种印刷厂印成标签后粘贴在产品的包装物上。产品进入市场后消费者通过上网电话进行查询,由系统进行识别校对,并用文字或语音提示,帮助消费者确认产品真假。
防伪身份码记录了被保护产品的相关信息,具有唯一性,一次使用性和综合防伪的功能。任何人在任何地方,只要拨通指定查询电话(8008409315)或通过互联网(http//www.e-fence.com.cn),按电话语音提示(或互联网网页上的提示)输入防伪标识上的防伪身份码,中心数据库的计算机验证系统将所输入的防伪查询码经过解密处理后,再与数据库中的数据进行比较,就可得到以下三种结果A.如果您输入的防伪身份码,在一方的中心数据库存在,并且是首次查询在互连网上查询时查询结果显示您查询的是正牌产品,单击结果页的“查询详细信息”按钮可查询该防伪编码对应的厂商和产品的详细信息。在电话上查询时查询结果语音显示您查询的是**公司**产品的正牌产品,欢迎再次查询。
B.如果您输入的防伪身份码,在一方的中心数据库存在,但不是首次查询在互连网上查询时查询结果显示您输入的号码已被查询过*次,首次查询的时间是*年*月*日,请注意防伪。单击该页的“详细信息”按钮可查询该防伪编码对应的厂商和产品的详细信息。
在电话上查询时查询结果语音显示您输入的号码已于*年*月*日被首次查询,请注意防伪!C.如果您输入的防伪身份码,在一方的中心数据库不存在,那该防伪码对应的产品可能是冒牌产品在互连网上查询时查询结果显示您输入的号码不存在,请注意防伪!在电话上查询时查询结果语音显示您输入的号码不存在,请注意防伪!技术方案的实施(一)、网码防伪中间件Anti-counterfeitMiddleware(1)所谓中间件,是在计算机硬件和操作系统之上,支持应用开发和运行的系统软件,它能够使应用系统相对独立于计算机硬件和操作系统平台,为当今的大型分布式应用搭起了一个标准的平台,实现大型应用系统的集成。
中间件具有标准的程序接口和协议,可以实现不同硬件和操作系统平台上的数据共享和应用互操作。在具体实现上,中间件是一个用API定义的分布式软件管理框架,具有强大的通信能力和良好的可扩展性。
将中间件技术应用于防伪是本系统的独创,同时也标志着本系统的技术先进性(2)网码防伪中间件的功能详述该中间件封装了以下功能函数1)验证网码真假的库函数接口描述char *query参数为char strPswordID,char sServerName,char sDBName,char*sUserID,char*sPasswwrd,char*sFilePaths参数说明strPswordID为20位有效字符串(用户输入的防伪号);sServerName数据库所在的服务器名称;sDBName数据库名称;
sUserID数据库用户名称;spassword数据库密码;sFilepaths文件路径。
验证、查询结束后,将查询结果返回若查询成功,则返回结果为26位有效字符串,构成形式如下前4位是查询结果,格式为XXXX,其中XXXX的值域为0000--9999,00中的第4个0表示输入的防伪码不存在,即次数为0,0004表示查询过4次,依次类推,最多查询次数为9999次;从第5位到第12位为查询时间,若时间的格式为“年、月、日”如20000713;后14位为网码所对应的明文。否则返回如下信息字符串“-3”表示找不到文件的路径,此时,SinOutParam的值为FileNoFound12345678900987654321。
“-2”表示输入的防伪号码不足20位,sInOutParam为原传入的值;“-1”表示输入的防伪号码长度超过了20位,sInOutParam为原传入的值;“0”表示数库异常信息,如数据库信息设置错误。
2)支持cti平台的网码真假验证库函数接口描述函数形式extern“C”UINTPASCALEXPORT ScePUERY参数为LPVOID pNoUse,char*sInOutParam参数说明pNoUse为无类型的长指钊LPVOID类型的参数,在查询时指定值为NULL(不允许其他值);sInOutParam为字符指钊sInOutParam,传递防伪码、数据库和文件路径的参数。该参数将被分别分解为防伪码(20位),服务器名称,数据库名称,数据库用户名称,数据库用户密码,密码文件路径6个参数。
SInOutParam是已“,”作为分隔符的字符串,参数为空时,“,”后不填任何值,仅用“,”隔开,最后一个参数不能加“,”。例如执行查询完后,若查询成功将把查询的结果又填入sInOutParam(实际上sInOutParam既具有传递入口参数,又具有把查询结果传递出来的双重作用)。
查询返回结果和sInOutParam值类型信息如下-3表示找不到密文件的路径,此时,sInOutParam的值为FileNoFound12345678900987654321。
-2表示输入的防伪号码不足20位,sInOutParam为原传入的的值;-1表示输入的防伪号码长度超过了20位,sInOuParam为原传入的值;0表示数据库异常信息,如数据库信息设置错误;1表示查询结果合法。
3)、批加密库函数A.功能描述批加密的功能是通过产品开始编号和产品结束编号对一批产品号进行加密,并把加密后的密文存放到一文本文件中,最后返回存放密文的文件名。
B.函数形式extern“C”char*_stdcall BatchEncryption参数为char*sBatchID,char*sStartID,char*sEndID,inmBatchcount,char*sFileLocation参数说明sBatchID产品厂商编号,有效值6位有效字符串;sStartID产品开始编号,有效值8位有效字符串;sEndID产品末尾编号,有效值8位有效字符串;nBatchCount对应开该商品编号和批号的加密批次,有效值范围(1,9999),即同类商品最多可加密9999次;sFileLocation批加密文件的路径。
SStartID,sStartID,sEndID均为定长字符串,不足特定的位数均按异常处理并给出异常信息。
函数返回完成加密后返回18位长的数字字符串,其中18位字符串的构成为4位厂商编号,2位产品种类位日期,4位批次。当批次不足4位时,在批次前补零直至够4位。
4).有效原文加密库函数接口描述函数形式extern“C”CHAR*_stdcallEncryption参数为char*strOrigText参数说明strOrigText为待加密的原文,有效长度为14位。不足或超过14位均按异常对待。处理字符串时不忽略字符间的空格,即若字符串间若有空格,则该字符为非法字符串,不执行加密过程。
函数返回原文长度超过20位返回字符串(字符指针)“-2”;
原文长度不足20位返回字符指针“-1”;合法原文返回结果为20位数字字符串,即密文。
5).密文解密库函数接口描述函数形式extern“C”char*_stdcallDecryption参数为char*strPswdText参数说明strPswdText为待解密的密文,有效长度为20位。
函数返回密文长度超过20位返回字符串(字符指针)“-2”密文长度不足20位返回字符串“-1”;合法密文函数返回结果为14位有效字符串,即明文。
(3)采用中间件的优点中间件是通用的,基于某一标准接口的,具有良好的重用性。完全克服了传统的客户/服务器模型的缺点,具有可重用性、灵活性、可管理性、易维护性等一系列优良的特性。
(二)、防伪查询系统是根据用户输入的产品号判断产品的真伪,为系统的实用性和有效性,系统必须提供专用加(解)密算法对服务范围内的业务能够提供准确可靠的服务。具体来讲,在性能上,加(解)密算法应具备良好的可靠性,具有完备的加解密功能,在设计上算法必须科学合理。相关要求归纳如下(1)、功能要求a.加密功能加密过程是将14位纯数字组成的产品码编码进行加密,加密成20位纯数字串构成的网码。
b.解密过程解密过程是将20位网码解密成14位的纯数字串(产品号)。
(2)、可靠性要求1).算法必须能够提供有效的加(解)密功能。
2).加密和解密应是相互独立的(从实际的应用来看)。对于系统要求的特定输入,通过加密算法,应能够完成加密过程,实现从原文到密文的转换;同时,对于解密算法涉及的任意合法密文,通过解密算法能够完成解密过程,实现从密文到明文的转换。
3).算法的有效性验证标准是对于算法范围内的加密和解密,通过解密解出的明文必须和原文完全一致,不能产生二义性(即使是小概率事件)。
4).算法应具备良好的安全性、可靠性和可承受攻击性。
(3)、实现形式a、加密规则1、给定一个长位20位的位置,将14位的数字经过加密后使其成为20位的数字;2、将定的14位数字分成前6位的批号位和后8位的编号位,然后分别独立加密,使14位原文经加密后存放于给定的20位长的位置中;3、加密时,先指定编号随机位、批号随机位和校验位;4、批号随机位和编号随机位上存放随机生成的0-9之间的一个数字,校验位存放前19位数字之和的个位数字;5、由批号随机位和编号随机位决定加密的起始位置、批号和编号的字段长位置;6、移位规则遵循数字位置分配方法,分别分配批号和分配编号;7、当14位数字已排好后,预留第4、8、15位,用随机数填充最后剩余的3个空余位置;8、通过建立0-9之间的一一映射表,将排好序的20位有效数字进行函数映射,由此得到的20位数字即为最后的密文。
b、解密规则1、将20位的密文经过解密变换后使其成为14位的明文;2、根据密码映射表将密文还原成加密排序结束状态;3、读取还原后的第4位和第15位即获得密钥;4、根据有序数对第4位和第15位翻译;5、按照逻辑次序将密文还原成明文。
(4).加密算法设计(1)设计思想依据加密规则,可以看出加密的最终任务是将14位的数字按照该规则转换成20位的数字。
加密的方法是在具有固定长度的位置上排列数字,排列数字遵循排序规则,包括固定位置的数字填法和由之而决定的起始位置及待排数字的相对位移量等,处理定长位置上排序的途径有许多,如通过连表法,数组法,甚至是双链表法等。排序时采用的是hash算法中最为常用也最方便的“除留余数法”(相对直接定址法,数字分析法,平方取中法,折叠法),这也是该算法的难点所在。不管采用哪中方法在排序的过程中都可能遇到冲突。
如果把要排序的对象(不管它是数字还是其他字符)看成是关键字的话,hash(哈希)算法的关键是哈希函数的构造。哈希函数是一个映象表,它使得任何关键字通过该映象所得的哈希函数值都落在表长允许的范围之内即可。
对于不同的关键字可能得到同一哈希地址,也就是冲突。即如果key1!=key2,而f(key1)=f(key2)。这就是冲突(collision)。具有相同函数值的关键字对该哈希函数来说叫做同义词(synonym)。在一般情况下,我们希望冲突尽可能地少而不能完全避免(除非关键字非常少而表长又非常长)。因为哈希函数是从关键字集合到地址集合的映象。通常,关键字的集合较大,它的元素包括所有可能的关键字,而地址集合的元素仅为哈希表中的地址值。所以哈希函数是一个压缩映象,这就不可避免产生冲突。因此,在排序时要着重处理冲突。
加密算法是在地址集为1-20的一个有序集上的排序过程。冲突是指由关键字(在本算法中关键字为0-9之间的数字)得到的哈希地址为j(1≤j≤20)的位置上已存有记录,则“处理冲突”就是为关键字的记录查找到另一个“空”的哈希地址。在处理冲突的过程中可能得到一个地址序列Hi(I-1,2,…k,),而Hi∈[1,20]。即在处理冲突时若得到的另一个哈希地址H1仍然发生冲突,则再求下一个地址H2,若H2仍然冲突,则再求H3H3依次类推,直至Hk不发生冲突为上(不必担心,一定存在不冲突的地址,道理很简单,关键字只有14个而可供存放关键字的位置有20个,即关键字长度小于地址集时,恒存在不冲突的地址),则Hk记为在表中的地址,这就是处理冲突的原理。
通常处理冲突的方法有开放定址法、再哈希法、链地址法和公共溢出区法,其中开放定址法的形式为Hi=(H(key)+di)Modmi=1,2,…,k(k≤m-1)其中H(key)为哈希函数;m为哈希表长;di为增量序列,可有下列三种取法(1)di=1,2,3,…m-1,称线性探测再散列;(2)di=12,-12,22,-22,…,±k2(k≤m/2)称为二次探测再散列;(3)di=伪随机数序列,称伪随机探测再散列。
不难发现这里的哈希函数实际上是0-9构成的随机数到1-20间的整数的一个映射,从映射的角度来看,对于批号或编号来讲,映射是一一对应,但同时考虑批号和编号则可以发现既不是一一映射,也不是满射(因为当编号随机数为0时,编号字段长位置为5,而当批号随机数为4时批号字段长位置也为5,即在这种情况下地址次冲突)。这个函数是一个离散函数,可以这样定义该哈希函数I=H(key)其中key的值为0-9,H(key)的值为1-20之间的自然数。Key即该哈希函数的自变量,I为因变量。如批号随机数为3时,key=3,H(key)=7。
很显然,本发明的防伪算法是线性探测再散列。下面举例来说明算法的设计思想根据加密要求,第4位和第8位的值是随机产生的,假设批号随机位上的值分别为0,则批号字段长位置应为20(即起始地址为第20个位置),并设批号为abcdef(a、b、c、d、e、f是0-9之间的任意数)。
对应于该六位数(确切地将是6为数字字符串,因为001234当然不是数值,用个位、十位的称呼仅是为了排序的需要而已),则按照排序规则的要求,如先从位高位开始排序(先高位还是低位都可以因为批号或编号都是数字字符串)则a的绝对地址应为(20+3)mod20=3,b的绝对地址应为(20+6)mod20=6.
依次类推,c,d,e,f的地址应分别为10,1,8,16。这时,数字e在第8个位置上,由于第8位以被批号机数占用,即冲突,这时e的绝对地址应重新来计算,(8+1)mod20=9,这里的8为上一次求得的绝对地址,发现第9个位置上不冲突,这样abodefg的绝对地址应为3,6,10,1,9,16。从上述线性探测再散列的过程可以看出只要哈希表未填满,总能找到一个不发生冲突的地址Hk.这也是加密算法得以进行的依据所在。
概括来讲,防伪算法在本质上是基于批号和编号随机位而决定的离散hash函数之上的,采用线性探测再散列法处理冲突的一种排列,批号和编号位的随机性决定了算法的保密性和可靠性,这是由于防伪码样本空间的高度复杂性决定的。
(2)设计实现1)加解密步骤从上面的设计思想来看,加密是将特定长度的数字串按照加密规则排列在定长位置上,虽然事先并不知道冲突位置,但是不难发现,每填入一个数据将占用一个“位置”,这个位置可以很容易地做好标记,若每填一个数据,该输入所在的位置即成为“忙态”(不可再填入数据),这样当下一次遇到理应填入该位置的数据时,由于该位置为“忙态“,即发生冲突,则待填数据寻找下一个可能的“闲态”位置,若下一位置真正为闲态,则填入,否则,继续寻找处于“闲态”的位置。对于不管是批号还是编号,排列的思想均是一样的,只不过先排批号还是编号应与解密过程相一致。
从以上分析不难归纳出加密的步骤,下面对加密步骤做以详细说明①.设置最终要排序的地址空间,如数组或链表(也可以是双链表),有效长度为20(算法的具体实现时用数组来表示,长度为21,这样做是由于数组的下标从0开始,而最终的有效地址标号是从1开始到20结束)。加密的本质是将14位有效数字排列在长度为20的数组中去,由于要处理冲突,所以首先需要标志冲突的位置,为此设置用来标志冲突的位置的数组,数组的长度为也为21。为后面的叙述方便,称要插入14位产品号的数组为目标数组,标记冲突位置的数组为标志数组。且目标数组的数据类型为字符型,标志数组的数据类型为整型。
②.数组变量。要加密的原文为虽然为数字但一般是不可比较大小的数字(如0012和0231是不可区别大小的数字,当然在字符意义上是可以比较大小的),所以对要加密的原文当字符串来看待(即数字字符串)。由于加密规则的要求,很自然先要对目标数组的第5、16个元素以一位随机数进行赋值,这时自然要把标志数组的第1,5,9,16个元素置为“忙态”(原因是第一个位置始终没有用到只是起到了调节位置的作用。其他目标元素初始化为‘a’(当然可以是别的非数字字符),剩余标志数组置为“闲态”。
③.选择批号和编号的加密先后顺序。不论是先对批号还是对编号加密,都能达到加密规则规定的要求,只不过在解密时要注意与加密过程形成对应。
④按加密规则对批号和编号进行单独加密。加密的具体过程是对于一个有效的产品号,先将其按批号和编号分成两部分6位批号和8位编号。一旦确定了批号和编号的加密次序,则排序应遵循产品号自左向右的方向进行。即对批号和编号来说,排序应按从高位到低位的顺序进行。遵循(Pos+Abs)mod20的原则确定待排元素的最终绝对位置。处理冲突时按(ColPos+1)mod20确定下一个可能不冲突位置,若不冲突,则由此所得的位置即为待排元素的最终绝对位置。每排一元素,立即置该元素所在的标志位置为“忙态”,道理很显然,该位置不可能再排列别的任何元素。依.此规则排列完14位产品号。
⑤填充剩余位置。按加密规则要求用随机数填充剩余位置,由于目标位置是字符数组,所以要先将随机数转换成字符在填充。
⑥填充随机位。由于第8位(在数组中是第9个元素)是随机位,而且在初始化时被置为“忙态”,所以现需要将该位置重置为闲态,并前19位数字之和的各位数字转换成字符填入,由于前面有5位数字是随机填入的,所以这个位置的值也是随机的,所以称为随机位是合当的。
⑦密码转换。将排列好的20位数字字符通过密码对照表进行一次转换,至此加密完成。
(2).查询的实现通过用户的防伪id,先查询已查询id日志表,有,告诉用户你输入的号码已经被查询,没有,用厂商编号查询厂商信息表,没有,告诉用户提示1,有,用产品编号查询T2(厂商的产品编号表),没有,告诉用户提示1,有,用8位商品编号查询T3(产品编号范围表),没有,告诉用户提示1,有告诉用户提示2,并将得到的语音文件名组合成信息台可识别的格式,作为返回结果返回。Web的返回为相应的文字信息。
其中用户提示1为“你查询的号码不存在”;用户提示2为“你查询的料公司料产品的正派产品”。
(3).统一消息平台的防伪查询实现本系统的电话机互联网查询是在基于统一消息的平台上实现,程序的伪代码如下∥开始查询,播放语音提示“您好,这里是一方防伪查询热线,请输入20位商品标签防伪编码,按#字键结束。
STR 1,29,=,0,1SEARCHSET 01,OPT 0,@34,PleaseinputId.vox,,21,3ACP 01JPC@36=,1|exitSET 02,@36∥判断是否为20位的idcheckidSTR 0,01,@36JPC @01=20,0|idno20,1|startsearch∥提示用户输入的id号不足20位或超过20位idno20SET 01,OPT 0,@34,reinputid.vox,,21,3ACP 01JPC @36=,1|exitSET 02,@36JMP checkid∥调用中间件,开始进行查询
startsearchSET36,@02SET10,@36,xayfsqlserver,yifang,sa,,g\pswfile\PLG ArithDll.dll,SceQuery,@10,05,06TRC<REL> @05JPC@05,1|idyes,-3|errorid,-2|idno20,-1|idno20idyesSTR1,11,@06,0,4STR1,12,@06,12,4STR1,13,@06,16,2STR1,02,@06,4,8STR1,24,@06,12,14SET04,@12SET05,0JPC@11=1,1|to5is1,0|nexttodbto5is1SET05,1nexttodbJPC@11=0,1|erroridSET01,@12STR1,12,select ManufacturerVox from ManufacturerInfo whereManufacturerID@29'@01',0,-1STR 1,03,select ProductNameVox from ProductClass whereManufacturerID@29'@01'and ProductClass@29'@13',0,-1DBR dsn=yifang;uid=sa;pwd=;database=yifang,@12,14,15,1,|DBR dsn=yifang;uid=sa;pwd=;database=yifang,@03,16,17,1,FUC0,28STR1,19,@30,0,4DBR odbc;dsn=yifang;uid=sa;pwd=;database=yifang,select Netherlandsfrom TelephoneArea where HostArea=@19,20,21SET22,'@24','@37','@30',@18',@28','@05','@2'SET23,MarqueId,Hostphone,CallNumber,StartTime,EndTime,Sign,IncidentAddressDBW dsn=yifang;uid=sa;pwd=;database=yifang,insert into AccessLog(@23)values(@22),01JPC@11=0,1|errorid,0|ifnot0
ifnot0JPC@11<0,1|exit,0|if1if1JPC@11=1,1|okid,0|Overid∥查询结果提示所查询的号码已于xx年xx月xx日查询过OveridSET01,OPT0,@34,ResearchId.vox|<@02>|Researchtime.vox,,0,1ACP01JMP exit∥查询结果提示所查询的号码不存在erroridSET01,OPT0,@34,errorid.vox,,0,1ACP01JMP exit∥查询结果您所查询的是某厂的某正牌产品okidSET01,OPT0,@34,Thisis.vox|@15|@17|Produce.vox,,0,1ACP01DBW dsn=yifang;uid=sa;pwd=;database=yifang,update ProductClassSET searchcount=searchcount+1 where ManufacturerID@29'@04′andProductClass@29'@13'∥结束查询,停止动作exitOPT0,@34,over.vox,,0,1ACP01OPT6,@34本伪代码可以在电话查询服务器上运行,按照程序流程完成防伪查询。
(4).WEB网站上的防伪查询实现ISAPI ComponentsWEB查询的核心是一个ISAPI组件,考虑到安全性,此软件采用3ds加密算法。中间件对组件所有者的进行身份验证,只有确认数据包的发送者可以信任,才允许组件调用中间件的“验证网码真假“库函数,根据函数返回值,将查询结果通过web返回给查询用户。
ISAPI Components的优点是与web服务融为一体,支持多线程,执行效率高;自带数据包过滤,多重身份认证,安全方便移植。
ISAPI Query Components是一种与操作系统http服务无缝集成的软件,包含以下功能对组件所有者的进行身份验证,首先确认数据包的发送者可以信任;再对数据包进行过滤,删除恶意用户或黑客的攻击;从数据包中分离出网码,分析该网码符合查询规则与否;调用中间件的“验证web查询的网码真假”库函数,根据函数返回值,将查询结果通过web返回给客户端浏览器;显示给用户;记录查询日志。
统一消息平台上的程序是将语音与数据集成在一个综合系统中,该软件包含以下功能ACD(自动资源分配),IVR(自动语音应答),人工座席服务,转拨打假热线,自动查询功能,SCE(业务定制环境)。利用定制的业务流程可以实现防伪查询,记录日志,语音应答,资源分配等功能。
本发明与已有技术相比,具有以下优点无法伪造以往的防伪技术从理论上讲均属于一元防伪技术,实际上总是可以伪造的,只不过伪造的难易程度不同而已。本系统采用的是在每件产品防伪标识物中所设置的防伪码都是通过特殊加密算法生成的,并且防伪码信息均存储在中心数据库。即便是伪造者能够伪造预防伪标识物外观一样的产品,但也无法伪造出符合产品之间无规律可循的防伪码,更无法将伪造的防伪码信息送存到一方数据库中。
编码严格每枚防伪标识物中所含有的编码都是唯一的,通过精密的数学算法随机生成,决不重复,而且没有规则和规律,是一种纯粹的无序随机码,造假者无法仿制。编码容量达到1020,从而满足大规模的需要。
查询简便验证真假的使用过程简单、宜于操作、方便灵活。传统的防伪技术实际上是采用特殊材料、特殊方法制造的一些复杂标识物。要想鉴别真伪,需要特殊技能或购买昂贵的专用仪器,广大消费者基本上无法直接使用防伪标识物来鉴别产品的真伪。采用网码防伪技术的产品,任何购买者,拨通查询电话或进入互联网系统,进行查询便知产品真伪,从而将一种技术性非常强的复杂过程,简化成了一个拨打电话和互联网查询的简单过程,更无须专门技术,设备,培训,从而使查询过程更加力便灵活、安全可靠。
技术先进广泛应用了当今软件业,互联网业的先进技术,如MIDDLEWARE,CONPONMENTS,3DS,从而保证了这个系统的安全性,可靠性,响应实时性以及技术的先进性。网码防伪在宝鸡卷烟厂的使用情况
由一方防伪科技有限公司所开发的网码防伪系统,经宝鸡卷烟厂反复论证,已经在宝鸡烟厂生产的磨砂猴王香烟和翻盖红猴王香烟上得以应用。它通过将20位的防伪码及相应的说明全部印制到香烟包装条盒上,予以实施。
和市场同类防伪相比,具有如下优势1.网码防伪系统本身的科学性、先进性、严谨性,以及对消费者而言鉴别的简易性和方便性,比激光防伪时代诸如激光标识、定位烫金等技术要优越的多。
2.就数码防伪而言,通过印制在包装盒上的办法,有效地解决了贴标等办法所带来管理的难度、生产工序增加、相应的生产成本增加等问题。
该两个品牌带有此种防伪的新产品上市以后,消费者查询电话不断,每天都有上千查询电话打入查询。实践证明采用网码防伪,效果十分明显。
权利要求
1.一种基于网码的商品防伪系统,系统采用模块化结构,部件之间接口互联,包括一个web查询服务器[1],web查询服务器[1]设置有防火墙[2],通过防火墙[2]与INTERNET连通;一个电话查询服务器[3],电话查询服务器[3]通过电话线[4]与通讯网连通;一个交换机[5];一个数据库服务器[6];其特征在于web查询服务器[1]、电话查询服务器[3]、数据库服务器[6]与交换机[5]互连,作为查询支持硬件平台;网码长度为20位;采用Anti-counterfeit Middleware中间件作为加密、解密核心软件;采用ISAPI Query Components作为支持WEB防伪查询的核心软件;采用运行在统一消息平台上的程序作为支持电话防伪查询的核心软件;所述中间件,是在计算机硬件和操作系统之上,支持应用开发和运行的软件,它能够使应用系统相对独立于计算机硬件和操作系统平台,具有标准的程序接口和协议,可以实现不同硬件和操作系统平台上的数据共享和应用互操作,是一个用API定义的分布式软件管理框架,具有通信能力和可扩展性;中间件封装了以下功能函数(1)验证web查询的网码真假的库函数(2)支持cti平台的网码真假验证库函数(3)批加密库函数(4)有效原文加密库函数(5)密文解密库函数。
2.根据权利要求1所述的基于网码的商品防伪系统,其特征在于所述加密是将14位纯数字组成的产品编码(明文)进行加密为20位纯数字串构成的防伪码(密文),所述解密是将20位纯数字串构成的防伪码解密为14位纯数字串。
3.根据权利要求1所述的基于网码的商品防伪系统,其特征在于所述验证web查询的网码真假的库函数形式为接口描述函数形式char*query参数为char strPswordID,char sServerName,char sDBName,char*sUserID,char*sPasswwrd,char*sFilePaths验证、查询结束后,将查询结果返回若查询成功,则返回结果为26位有效字符串,构成形式如下前4位是查询结果,格式为XXXX,其中XXXX的值域为0000--9999,0000中的第4个0表示输入的防伪码不存在,即次数为0,0004表示查询过4次,依次类推,最多查询次数为9999次;从第5位到第12位为查询时间,若时间的格式为“年、月、日”如20000713;后14位为网码所对应的明文;否则返回如下信息字符串“-3”表示找不到文件的路径,此时,SinOutParam的值为FileNoFound12345678900987654321;“-2”表示输入的防伪号码不足20位,sInOutParam为原传入的值;“-1”表示输入的防伪号码长度超过了20位,sInOutParam为原传入的值;“0”表示数库异常信息,如数据库信息设置错误;
4.根据权利要求1所述的基于网码的商品防伪系统,其特征在于所述支持cti平台的网码真假验证库函数形式为接口描述函数形式extern“C”UINTPASCAL EXPORT ScePUERY参数为LPVOIDpNoUse,char*sInOutParam;执行查询完后,若查询成功将把查询的结果又填入sInOutParam;查询返回结果和sInOutParam值类型信息如下-3表示找不到密文件的路径,此时,sInOutParam的值为FileNoFound12345678900987654321;-2表示输入的防伪号码不足20位,sInOutParam为原传入的的值;-1表示输入的防伪号码长度超过了20位,sInOutParam为原传入的值;0表示数据库异常信息,如数据库信息设置错误;1表示查询结果合法;
5.根据权利要求1所述的基于网码的商品防伪系统,其特征在于所述批加密库函数形式为接口描述函数形式extern “C”char*stdcall BatchEncryption参数为char*sBatchID,char*sStartID,char*sEndID,intnBatchcount,char*sFileLocationnBatchCount对应开该商品编号和批号的加密批次,有效值范围1,----9999,即同类商品最多可加密9999次;sFileLocation批加密文件的路径。SStartID,sStartID,sEndID均为定长字符串,不足特定的位数均按异常处理并给出异常信息。函数返回完成加密后返回18位长的数字字符串,其中18位字符串的构成为4位厂商编号,2位产品种类位日期,4位批次。当批次不足4位时,在批次前补零直至够4位。
6.根据权利要求1所述的基于网码的商品防伪系统,其特征在于所述有效原文加密库函数形式为接口描述函数形式extern“C”CHAR*_stdcallEncryption参数为char*strOrigTexf原文长度超过20位返回字符指针“-2”;原文长度不足20位返回字符指针“-1”;合法原文返回结果为20位数字字符串,即密文;
7.根据权利要求1所述的基于网码的商品防伪系统,其特征在于所述密文解密库函数形式为接口描述函数形式extern“C”char*_stdcallDecryption参数为char*strPswdText密文长度超过20位返回字符串指针“-2”;密文长度不足20位返回字符串指针“-1”;合法密文函数返回结果为14位有效字符串,即明文。
8.根据权利要求1所述的基于网码的商品防伪系统,其特征在于所述ISAPI Query Components是一种与操作系统http服务无缝集成的软件,支持多线程;内置数据包过滤,3DS身份认证;支持远程过程调用(RPC),在异构系统中,升级,移植方便;所述统一消息平台上的程序是将语音与数据集成在一个综合系统中,通过系统软件的支持,在该平台上可以实现电话,手机,短消息,邮件等设备的防伪查询。
9.根据权利要求2所述的基于网码的商品防伪系统,其特征在于所述加密的规则是(1)给定一个长为20位的位置,将14位的数字经过加密变换后使其成为20位的数字;(2)将定的14位数字分成前6位的批号位和后8位的编号位;(3)加密时,先指定编号随机位、批号随机位和校验位的位置;(4)批号随机位和编号随机位上存放随机生成的0-9之间的一个数字;(5)校验位存放前19位数字之和的个位数字;(6)由批号随机位和编号随机位决定加密的起始位置、批号和编号的字段长位置;(7)移位规则遵循数字位置分配方法,分别分配批号和分配编号;(8)当14位数字已排好后,预留第4、8、15位,用随机数填充最后剩余的3个空余位置;通过建立0-9之间的一一映射表,将排好序的20位有效数字进行函数映射,由此得到的20位数字即为最后的密文(网码)。
10.根据权利要求2所述的基于网码的商品防伪系统,其特征在于所述解密的规则是(1)将20位的密文经过解密变换后使其成为14位的明文;(2)根据密码映射表将密文还原成加密排序结束状态;(3)读取还原后的第4位和第15位即获得密钥;(4)根据有序数对第4位和第15位翻译;按照逻辑次序将密文还原成明文。
全文摘要
本发明公开了一种基于网码的商品防伪系统,由web查询服务器、电话查询服务器、数据服务器与交换机互连,作为查询支持硬件平台,该系统采用模块化结构,部件之间接口互联,可通过防火墙与INTERNET连通;还可通过电话线与通讯网连通;网码长度为20位,每个入网企业的可用网码量为1亿亿,利用数据库管理。网码生成采用加密方法,可靠、稳定,采用中间件作为加密、解密核心件;能够使应用系统相对独立于计算机硬件和操作系统平台,具有标准的程序接口和协议,可以实现不同硬件和操作系统平台上的数据共享和应用互操作,是一个用API定义的分布式软件管理框架,具有强大的通信能力和良好的可扩展性。
文档编号G06F17/00GK1333625SQ0112876
公开日2002年1月30日 申请日期2001年8月27日 优先权日2001年8月27日
发明者王小钢 申请人:王小钢
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1