CN1195372C - 一种基于网码的商品防伪的实现方法 - Google Patents
一种基于网码的商品防伪的实现方法 Download PDFInfo
- Publication number
- CN1195372C CN1195372C CN 01128766 CN01128766A CN1195372C CN 1195372 C CN1195372 C CN 1195372C CN 01128766 CN01128766 CN 01128766 CN 01128766 A CN01128766 A CN 01128766A CN 1195372 C CN1195372 C CN 1195372C
- Authority
- CN
- China
- Prior art keywords
- code
- inquiry
- function
- web
- false
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Landscapes
- Storage Device Security (AREA)
Abstract
本发明公开了一种基于网码的商品防伪的实现方法,由web查询服务器、电话查询服务器、数据服务器与交换机互连,作为查询支持硬件平台,该系统采用模块化结构,部件之间接口互联,可通过防火墙与INTERNET连通;还可通过电话线与通讯网连通;网码长度为20位,每个入网企业的可用网码量为1亿亿,利用数据库管理。网码生成采用加密方法,可靠,稳定,采用中间件作为加密、解密核心件;能够使应用系统相对独立于计算机硬件和操作系统平台,具有标准的程序接口和协议,可以实现不同硬件和操作系统平台上的数据共享和应用互操作,是一个用API定义的分布式软件管理框架,具有强大的通信能力和良好的可扩展性。
Description
技术领域
本发明涉及一种商品防伪系统,涉及密码学,cti(电信与计算机集成),中间件,数据库系统等领域,具体地说是一种基于网码的商品防伪的实现方法。
背景技术
目前已有的防伪技术有:激光标贴,荧光油墨,温变油墨,隐形标志等。这些技术都属于第一代防伪技术,具有以下缺点:
1.利用某种特定技术或材料将防伪信息制作到防伪标识物上,每类标识物的防伪信息均相同,防伪标识物与商品没有一一对应关系。
2.只要采集到的防伪标识样本,或者获得制造设备、工艺及材料即可批量仿制。
3.要准确鉴别出防伪标识的真伪,需要专业人员的仪器,普通消费者很难鉴别。
第二代防伪技术采用以计算机结合网络技术(身份码识别技术(及常见的电码防伪)的手段,如中国专利981129242《计算机网络商品防伪系统》、中国专利99125163.6《商品防伪方法和商品防伪系统》等,其技术手段大都是利用计算机为生产企业的产品提供商品根码(身份码),通过加密处理得到商品子码,并通过载体附于商品上,由消费者根据所购买的商品通过信息传媒与生产企业沟通(电话查询身份码),辨别所购买商品的真伪。由于各企业所生产的商品不同,提供商品的码也不同,使消费者很难分清,同时,这些不规则的编码的防伪效果差,也不安全。这种防伪存在着以下缺点:防伪查询手段单一,查询电话费用高昂,给消费者带来大量不方便。
发明内容
根据上述现有技 术部分存在的缺陷,本发明的目的是提供一种安全性高、便于查询、使用可靠、技术先进的基于网码的商品防伪的实现方法。
本发明采用的技术方案是:一种基于网码的商品防伪的实现方法,采用web查询的服务器和电话查询服务器;和用于支持电话查询服务器的交换机及其支持web查询的数据库服务器,上述部件之间接口互联;其中web查询服务器、电话查询服务器、数据库 服务器与交换机互连,构成防伪查询的支持硬件平台;数据库服务器中有用于支持防伪查询的中间件和用于支持Web防伪查询的软件,中间件具有标准的程序接口和协议,其中有验证web查询的网码真假的库函数、支持电话声讯平台cti的网码真假验证库函数、批加密库函数、有效原文加密库函数、密文解密库函数;以实现不同硬件和硬件平台上的数据共享和应用互操作;其特征在于,该商品防伪方法包括下列步骤:
加密的步骤:中间件调用批加密库函数、有效原文加密库函数对防伪的商品生成20位数字的防伪身份码,然后分二个渠道:一个进入数据库服务器保存,另一个进入特种印刷厂印成标签后粘贴在产品的包装物上;完成加密后返回18位长的数字字符串,其中18位字符串的构成为:4位厂商编号,2位产品种类位日期,4位批次,当批次不足4位时,在批次前补零直至够4位;
解密的步骤:中间件调用密文解密库函数将20位网码解密成14位的纯数字串;
验证的步骤:网码真假验证由中间件的验证网码真假的库函数对输入查询的网码进行验证;电话声讯平台cti的网码真假验证由支持cti平台的网码真假验证库函数对输入查询的网码进行验证;
执行查询的步骤:
1)电话查询
a.在用户拨打防伪电话后,电话查询服务器运行查询程序,查询程序自动提示用户使用电话输入20位防伪码;
b.查询服务器得到具体数码后,由查询程序调用中间件,并将防伪码传送给中间件;
c.中间件调用内存的网码真假验证库函数,对防伪码进行真假验证,若查询成功,则返回结果为26位有效字符串,构成形式如下:
前4位是查询结果,格式为:XXXX,其中XXXX的值域为:0000-9999,0000中的第4个0表示输入的防伪码不存在,即次数为0,0004表示查询过4次,依次类推,最多查询次数为9999次;
从第5位到第12位为查询时间,后14位为网码所对应的明文;然后查询数据库服务器,取出相应的三种可能的语音提示,以告诉消费者产品的真伪;
2)网络查询
a.在用户登陆查询网站后,Web查询服务器运行查询程序,记录查询日志查询程序提示在网页里的文本框中输防伪数码,然后点击查询按钮进行防伪;
b.WEB查询服务器接收到防伪数码后,调用Web防伪查询软件,Web防伪查询软件对组件所有者的进行身份验证,首先确认数所包的发送者可以信任;再对数据包进行过滤,删除恶意用户或黑客的攻击;从数据包中分离出网码,分析该网码符合查询规则与否;
c.调用中间件的验证web查询的网码真假库函数,对防伪码进行真假验证,根据函数返回值,然后接着查询数据库服务器,将查询结果通过web返回给客户端浏览器;将三种可能的结果显示给用户,告诉查询者产品的真伪。
上述电话查询和网络查询三种可能的结果是:
①如果该防伪码在数据库服务器中存在,而且是首次查询,那么语音提示:您查询的是**公司生产的**产品的正牌产品。欢迎再次查询;
②如果该防伪码在数据库服务器中存在,但不是首次查询,那么语音提示:您查询的号码已于*后*月*日被首次查询,请注意防伪;
③如果该防伪码在数据库服务器中不存在,那么语音提示:您查询的号码不存在,请注意防伪。
统一消息平台上的程序是将语音与数据集成在一个综合系统中,通过系统软件的支持,在该平台上可以实现电话,手机,短消息,邮件等设备的防伪查询。使用户防伪查询更灵活,更方便。
该软件包含以下功能ACD(自动资源分配),IVR(自动语音应答),人工座席服务,转拨打假热线,自动查询功能,SCE(业务定制环境)。利用定制的业务流程可以实现防伪查询,记录日志,语音应答,资源分配等功能。
本发明采用的网码设计长度为20位,每个入网企业的可用网码量为1亿亿,利用数据库管理。网码生成采用自主开发的加密方法,可靠,稳定,采用统一消息平台作为查询支持平台,以中间件技术作为加解密核心,有效的解决了安全,负载均衡,跨操作平台的问题,整个系统采用模块化结构,各功能部件之间接口明晰,系统易于升级。
附图说明
图1是本发明的系统结构图。
具体实施方式
参见图1,本发明的基于网码的商品防伪实现方 法,采用web查询服务器1,web查询服务器1设置有防火墙2,通过防火墙2与INTERNET连通;一个电话查询服务器3,电话查询服务器3通过电话线4与通讯网连通;一个交换机5,一个数据服务器6;上述部件之间接口互联;其中web查询服务器1、电话查询服务器3、数据库服务器6与交换机5互连,构成防伪查询的支持硬件平台;
网码长度为20位。
采用中间件作为加密、解密核心件。
采用ISAPI Query Components作为支持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-counterfeit Middleware
(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,0000中的第4个0表示输入的防伪码不存在,即次数为0,0004表示查询过4次,依次类推,最多查询次数为9999次;
从第5位到第12位为查询时间,若时间的格式为“年、月、日”如20000713;后14位为网码所对应的明文。
否则返回如下信息字符串:
“-3”表示找不到文件的路径,此时,SinOutParam的值为FileNoFound12345678900987654321。
“-2”表示输入的防伪号码不足20位,sInOutParam为原传入的值;
“-1”表示输入的防伪号码长度超过了20位,sInOutParam为原传入的值;
“0”表示数库异常信息,如数据库信息设置错误。
2)支持cti平台的网码真假验证库函数:
接口描述:
函数形式:extern“C”UINT PASCAL EXPORT ScePUERY
参数为:LPVOID pNoUse,char*sInOutParam
参数说明:
pNoUse:为无类型的长指钊LPVOID类型的参数,在查询时指定值为NULL(不允许其他值);
sInOutParam:为字符指钊sInOutParam,传递防伪码、数据库和文件路径的参数。该参数将被分别分解为:防伪码(20位),服务器名称,数据库名称,数据库用户名称,数据库用户密码,密码文件路径6个参数。
SInOutParam:是以“,”作为分隔符的字符串,参数为空时,“,”后不填任何值,仅用“,”隔开,最后一个参数不能加“,”。例如:执行查询完后,若查询成功将把查询的结果又填入sInOutParam(实际上sInOutParam既具有传递入口参数,又具有把查询结果传递出来的双重作用)。
查询返回结果和sInOutParam值类型信息如下:
-3:表示找不到密文件的路径,此时,sInOutParam的值为FileNoFound12345678900987654321。
-2:表示输入的防伪号码不足20位,sInOutParam为原传入的的值;
-1:表示输入的防伪号码长度超过了20位,sInOutParam为原传入的值;
0:表示数据库异常信息,如数据库信息设置错误;
1:表示查询结果合法。
3)、批加密库函数:
A.功能描述:
批加密的功能是通过产品开始编号和产品结束编号对一批产品号进行加密,并把加密后的密文存放到一文本文件中,最后返回存放密文的文件名。
B.函数形式:extern“C”char*_stdcall BatchEncryption
参数为:char * sBatchID,char* sStartID,char*sEndID,intnBatchcount,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*_stdcall Encryption
参数为:char*strOrigText
参数说明:
strOrigText:为待加密的原文,有效长度为14位。不足或超过14位均按异常对待。处理字符串时不忽略字符间的空格,即若字符串间若有空格,则该字符为非法字符串,不执行加密过程。
函数返回:
原文长度超过20位返回字符串(字符指针)“-2”;
原文长度不足20位返回字符指针“-1”;
合法原文返回结果为20位数字字符串,即密文。
5)密文解密库函数:
接口描述:
函数形式:extern“C”char*_stdcall Decryption
参数为: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仍然冲突,则再求H3 H3依次类推,直至Hk不发生冲突为止(不必担心,一定存在不冲突的地址,道理很简单,关键字只有14个面可供存放关键字的位置有20个,即关键字长度小于地址集时,恒存在不冲突的地址),则Hk记为在表中的地址,这就是处理冲突的原理。
通常处理冲突的方法有开放定址法、再哈希法、链地址法和公共溢出区法,其中开放定址法的形式为:
Hi=(H(key)+di)Mod m i=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)mod 20=6。
依次类推,c,d,e,f的地址应分别为:10,1,8,16。这时,数字e在第8个位置上,由于第8位以被批号机数占用,即冲突,这时e的绝对地址应重新来计算,(8+1)mod 20=9,这里的8为上一次求得的绝对地址,发现第9个位置上不冲突,这样abcdefg的绝对地址应为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)mod 20的原则确定待排元素的最终绝对位置。处理冲突时按(ColPos+1)mod 20确定下一个可能不冲突位置,若不冲突,则由此所得的位置即为待排元素的最终绝对位置。每排一元素,立即置该元素所在的标志位置为“忙态”,道理很显然,该位置不可能再排列别的任何元素。依此规则排列完14位产品号。
⑤填充剩余位置。按加密规则要求用随机数填充剩余位置,由于目标位置是字符数组,所以要先将随机数转换成字符在填充。
⑥填充随机位。由于第8位(在数组中是第9个元素)是随机位,而且在初始化时被置为“忙态”,所以现需要将该位置重置为闲态,并前19位数字之和的各位数字转换成字符填入,由于前面有5位数字是随机填入的,所以这个位置的值也是随机的,所以称为随机位是恰当的。
⑦密码转换。将排列好的20位数字字符通过密码对照表进行一次转换,至此加密完成。
2).查询的实现
通过用户的防伪id,先查询已查询id日志表,有,告诉用户你输入的号码已经被查询,没有,用厂商编号查询厂商信息表,没有,告诉用户提示1,有,用产品编号查询T2(厂商的产品编号表),没有,告诉用户提示1,有,用8位商品编号查询T3(产品编号范围表),没有,告诉用户提示1,有告诉用户提示2,并将得到的语音文件名组合成信息台可识别的格式,作为返回结果返回。Web的返回为相应的文字信息。
其中用户提示1为“你查询的号码不存在”;用户提示2为“你查询的**公司**产品的正派产品”。
3)统一消息平台的防伪查询实现:
本系统的电话机互联网查询是在基于统一消息的平台上实现,程序的伪代码如下:
∥开始查询,播放语音提示“您好,这里是一方防伪查询热线,请输入20位商品标签防伪编码,按#字键结束。
STR1,29,=,0,1 SEARCH: SET01, OPT0,@34,PleaseinputId.vox,,21,3 ACP01 JPC@36=,1|exit SET02,@36 //判断是否为20位的id checkid: STR0,01,@36 JPC@01=20,0|idno20,1|startsearch //提示用户输入的id号不足20位或超过20位 idno20: SET01, OPT0,@34,reinputid.vox,,21,3 ACP01 JPC@36=,1|exit SET02,@36 JMP checkid ∥调用中间件,开始进行查询 startsearch: SET36,@02 SET10,@36,xayfsqlserver,,ifang,sa,,g:\pswfile\ PLG ArithDll.dll,SceQuery,@10,05,06 TRC<REL>@05 JPC@05,1|idyes,-3|errorid,-2|idno20,-1|idno20 <!-- SIPO <DP n="16"> --> <dp n="d16"/> Idyes: STR1,11,@06,0,4 STR1,12,@06,12,4 STR1,13,@06,16,2 STR1,02,@06,4,8 STR1,24,@06,12,14 SET04,@12 SET05,0 JPC@11=1,1|to5is1,0|nexttodb to5is1: SET05,1 Nexttodb: JPC@11=0,1|errorid SET01,@12 STR1,12,select ManufacturerVox from ManufacturerInfo where ManufacturerID@29′@01′,0,-1 STR1,03,select ProductNameVox from ProductClass where ManufacturerID@29′@01′and ProductClass@29@13′,0,-1 DBRdsn=yifang:uid=sa;pwd=;database=yifang,@12,14,15,1,| DBRdsn=yifang;uid=sa;pwd=;database=yifang,@03,16,17,1, FUC0,28 STR1,19,@30,0,4 DBR odbc;dsn=yifang;uid=sa;pwd=;database=yifang,select Netherlands from TelephoneArea where HostArea=@19,20,21 SET22,′@24′,′@37,′@30′,′@18′,′@28′,′@05′,′@21′ SET 23,MarqueId,Hostphone,CallNumber,StartTime,EndTime,Sign,IncidentAddress <!-- SIPO <DP n="17"> --> <dp n="d17"/> DBWdsn=yifang;uid=sa;pwd=;database=yifang,insert into AccessLog(@23)values (@22),01 JPC@11=0,1|errorid,0|ifnot0 ifnot0: JPC@11<0,1|exit,0|ifl ifl: JPC@11=1,1|okid,0|Overid ∥查询结果:提示所查询的号码已于××年××月××日查询过 Overid: SET01, OPT0,@34,ResearchId.vox|<@02>|Researchtime.vox,,0,1 ACP01 JMPexit ∥查询结果:提示所查询的号码不存在 errorid: SET01, OPT0,@34,errorid.vox,,0,1 ACP01 JMPexit ∥查询结果:您所查询的是某厂的某正牌产品 okid: SET01, OPT0,@34,Thisis.vox|@15|@17|Produce.vox,,0,1 ACP01 DBW dsn=yifang;uid=sa;pwd=;database=yifang,update ProductClass SET searchcount=searchcount+1 where ManufacturerID@29′@04′and ProductClass@29′@13′ <!-- SIPO <DP n="18"> --> <dp n="d18"/> ∥结束查询,停止动作 exit: OPT0,@34,over.vox,,0,1 ACP01 OPT6,@34
本伪代码可以在电话查询服务器上运行,按照程序流程完成防伪查询。
4)WEB网站上的防伪查询实现:ISAPI Components
WEB查询的核心是一个ISAPI组件,考虑到安全性,此软件采用3ds加密算法。中间件对组件所有者的进行身份验证,只有确认数据包的发送者可以信任,才允许组件调用中间件的验证网码真假库函数,根据函数返回值,将查询结果通过web返回给查询用户。
ISAPI Components的优点是与web服务融为一体,支持多线程,执行效率高;自带数据包过滤,多重身份认证,安全方便移植。
ISAPI Query Components是一种与操作系统http服务无缝集成的软件,包含以下功能:对组件所有者的进行身份验证,首先确认数据包的发送者可以信任;再对数据包进行过滤,删除恶意用户或黑客的攻击;从数据包中分离出网码,分析该网码符合查询规则与否;调用中间件的“验证web查询的网码真假”库函数,根据函数返回值,将查询结果通过web返回给客户端浏览器;显示给用户;记录查询日志。
统一消息平台上的程序是将语音与数据集成在一个综合系统中,该软件包含以下功能:ACD(自动资源分配),IVR(自动语音应答),人工座席服务,转拨打假热线,自动查询功能,SCE(业务定制环境)。利用定制的业务流程可以实现防伪查询,记录日志,语音应答,资源分配等功能。
本发明与已有技术相比,具有以下优点:
无法伪造:以往的防伪技术从理论上 讲均属于一元防伪技术,实际上总是可以伪造的,只不过伪造的难易程度不同而已。本系统采用的是在每件产品防伪标识物中所设置的防伪码都是通过特殊加密算法生成的,并且防伪码信息均存储在中心数据库。即便是伪造者能 够伪造预防伪标识物外观一样的产品,但也无法伪造出符合品之间无规律可循的防伪码,更无法将伪造的防伪码信息送存到一方数据库中。
编码严格:每枚防伪标识物中所含有的编码都是唯一的,通过精密的数学算法随机生成,决不重复,而且没有规则和规律,是一种纯粹的无序随机码,造假者无法仿制。编码容量达到1020,从而满足大规模的需要。
查询简便:验证真假的使用过程简单、宜于操作、方便灵活。传统的防伪技术实际上是采用特殊材料、特殊方法制造的一些复杂标识物。要想鉴别真伪,需要特殊技能或购买昂贵的专用仪器,广大消费者基本上无法直接使用防伪标识物来鉴别产品的真伪。采用网码防伪技术的产品,任何 购买者,拨通查询电话或进入互联网系统,进行查询便知产品真伪,从而将一种技术性非常强的复杂过程,简化成了一个 拨打电话和互联网查询的简单过程,更无须专门技术,设备,培训,从而使查询过程更加方便灵活、安全可靠。
技术先进:广泛应用了当今软件业,互联网业的先进技术,如MIDDLEWARE,CONPONMENTS,3DS,从而保证了这个系统的安全性,可靠性,响应实时性以及技术的先进性。
网码防伪在宝鸡卷烟厂的使用情况:
由一方防伪科技有限公司所开发的网码防伪系统,经宝鸡卷烟厂反复论证,已经在宝鸡烟厂生产的磨砂猴王香烟和翻盖红猴王香烟上得以应用。它通过将20位的防伪码及相应的说明全部印制到香烟包装条盒上,予以实施。
和市场同类防伪相比,具有如下优势:
1.网码防伪系统本身的科学性、先进性、严谨性,以及对消费者而言鉴别的简易性和方便性,比激光防伪时代诸如激光际识、定位烫金等技术要优越的多。
2.就数码防伪而言,通过印制在包装盒上的办法,有效地解决了贴标等办法所带来管理的难度、生产工序增加、相应的生产成本增加等问题。
该两个品牌带有此种防伪的新产品上市以后,消费者查询电话不断,每天都有上千查询电话打入查询。实践证明采用网码防伪,效果十分明显。
Claims (4)
1.一种基于网码的商品防伪的实现方法,采用web查询的服务器和电话查询服务器;和用于支持电话查询服务器的交换机及其支持web查询的数据库服务器,上述部件之间接口互联;其中web查询服务器、电话查询服务器、数据库服务器与交换机互连,构成防伪查询的支持硬件平台;数据库服务器中有用于支持防伪查询的中间件和用于支持Web防伪查询的软件,中间件具有标准的程序接口和协议,其中有验证web查询的网码真假的库函数、支持电话声讯平台cti的网码真假验证库函数、批加密库函数、明文加密库函数、密文解密库函数;以实现不同硬件平台上的防伪数码生成和查询操作;其特征在于,该商品防伪方法包括下列步骤:
加密的步骤:中间件调用明文加密库函数对防伪的商品生成20位数字的防伪身份码,然后分二个渠道:一个进入数据库服务器保存,另一个进入特种印刷厂印成标签后粘贴在产品的包装物上;其中明文包含6位的商品信息,8位的批号信息,然后按照设定的加密算法进行加密,最终生成20位的商品防伪网码;批加密库函数循环调用加密库函数,自动实现大批量的商品防伪网码;
解密的步骤:中间件调用密文解密库函数,将20位防伪网码进行解密,得到14位的明文数字串;
验证的步骤:网码真假验证由中间件的验证网码真假的库函数对输入查询的网码进行验证;电话声讯平台cti的网码真假验证由支持电话声讯平台cti的网码真假验证库函数对输入查询的网码进行验证;
执行查询的步骤:
1)电话查询
a.电话查询服务器运行后台运行电话声讯平台CTI服务程序,在用户拨打防伪电话后,查询程序自动提示用户使用电话输入20位防伪网码;
b.电话查询服务器自动识别用户通过电话输入得20位防伪网码,然后将防伪网码传送给中间件;
c.中间件调用内存中的网码真假验证库函数,对防伪码进行真假验证,调用解密函数,得到14位明文数字串,其中前6位包含商品信息,后8位包含批号信息,然后在数据库中,查询前6位代表的信息是否与加密时保存在数据库中信息相同,如果不相同,则该防伪网码不存在;如果存在,然后利用后8位的批号信息从数据库中取出20位的防伪网码,与用户输入的进行对比,如果相同,则防伪码真实存在,同时将本次查询登记进数据库;如果该防伪网码被再次查询时,提示用户该防伪网码已被查询过,已作废,要注意防伪;
d.电话查询服务器根据中间件的查询结果,取出相应的三种可能的语音提示,以告诉消费者产品的真伪;
2)网络查询
a.在用户登陆查询网站后,Web查询服务器运行查询程序,提示用户在网页里的文本框中输入防伪网码,然后点击查询按钮进行防伪;
b.WEB查询服务器接收到防伪网码后,调用Web防伪查询软件,Web防伪查询软件对组件所有者的进行身份验证,确认数据包的发送者可以信任;再对数据包进行过滤,删除恶意用户或黑客的攻击;从数据包中分离出网码;
c.调用中间件中的互联网网码查询库函数,对20位防伪网码,首先调用解密函数,得到14位明文数字串,其中前6位包含商品信息,后8位包含批号信息;然后在数据库中,查询前6位代表的信息是否与加密时保存在数据库中信息相同,如果不相同,则该防伪网码不存在;如果存在,然后利用后8位的批号信息从数据库中取出20位的防伪网码,与用户输入的进行对比,如果相同,则防伪码真实存在,同时将本次查询登记进数据库;如果该防伪网码被再次查询时,提示用户该防伪网码已被查询过,已作废,要注意防伪;
d.WEB查询服务器根据中间件的查询结果,在用户的浏览器中返回三种可能的查询结果文字,以告诉消费者产品的真伪。
2.如权利要求1所述的基于网码的商品防伪的实现方法,其特征在于,所述的电话查询和网络查询三种可能的结果是:
①如果该防伪码在数据库服务器中存在,而且是首次查询,那么提示:您查询的是**公司生产的**产品的正牌产品,欢迎再次查询;
②如果该防伪码在数据库服务器中存在,但不是首次查询,那么提示:您查询的号码已于*年*月*日被首次查询,请注意防伪;
③如果该防伪码在数据库服务器中不存在,那么提示:您查询的号码不存在,请注意防伪。
3.如权利要求1所述的基于网码的商品防伪的实现方法,其特征在于,所述的加密的具体步骤为:
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位数字即为最后的密文。
4.如权利要求1所述的基于网码的商品防伪的实现方法,其特征在于,所述的解密的具体步骤为:
1)将20位的密文经过解密变换后使其成为14位的明文;
2)根据密码映射表将密文还原成加密排序结束状态;
3)读取还原后的第4位和第15位即获得密钥;
4)根据有序数对第4位和第15位翻译;
5)按照逻辑次序将密文还原成明文。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 01128766 CN1195372C (zh) | 2001-08-27 | 2001-08-27 | 一种基于网码的商品防伪的实现方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 01128766 CN1195372C (zh) | 2001-08-27 | 2001-08-27 | 一种基于网码的商品防伪的实现方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1333625A CN1333625A (zh) | 2002-01-30 |
CN1195372C true CN1195372C (zh) | 2005-03-30 |
Family
ID=4668597
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN 01128766 Expired - Fee Related CN1195372C (zh) | 2001-08-27 | 2001-08-27 | 一种基于网码的商品防伪的实现方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN1195372C (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11647100B2 (en) | 2018-09-30 | 2023-05-09 | China Mobile Communication Co., Ltd Research Inst | Resource query method and apparatus, device, and storage medium |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102306014B (zh) * | 2011-04-26 | 2013-09-04 | 浙江中烟工业有限责任公司 | 一种win2控制系统的卷烟设备数据采集系统 |
CN102711065A (zh) * | 2012-04-11 | 2012-10-03 | 佳都新太科技股份有限公司 | 一种使用原被叫字段来传输短信验证码的方法 |
CN108763939A (zh) * | 2018-05-02 | 2018-11-06 | 开源物联网(广州)有限公司 | 防伪码的加密方法及加密系统 |
CN111475486A (zh) * | 2020-04-09 | 2020-07-31 | 广州创显科教股份有限公司 | 一种基于人工智能的货物运输管理方法、系统、装置及可读存储介质 |
-
2001
- 2001-08-27 CN CN 01128766 patent/CN1195372C/zh not_active Expired - Fee Related
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11647100B2 (en) | 2018-09-30 | 2023-05-09 | China Mobile Communication Co., Ltd Research Inst | Resource query method and apparatus, device, and storage medium |
Also Published As
Publication number | Publication date |
---|---|
CN1333625A (zh) | 2002-01-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7216227B2 (en) | Method and system for controlling the use of addresses using address computation techniques | |
CN1231028C (zh) | 在不同网络的匿名用户之间智能建立会话的分布式系统 | |
CN1148686C (zh) | 使用描述性数据结构访问和保护数据内容的系统和方法 | |
CN1207530A (zh) | 保护软件的计算机系统及一种保护软件的方法 | |
CN1130627C (zh) | 一种以Java虚拟机实现的信息处理设备 | |
CN1299545A (zh) | 使用虚拟专用密钥的用户鉴别 | |
CN105229985B (zh) | 标识令牌 | |
CN1502186A (zh) | 在计算机网络中有控制地分发应用程序代码和内容数据 | |
CN1647442A (zh) | 为获得解密密钥请求密钥检索的安全电子消息系统 | |
CN1201545A (zh) | 用于用户认证的方法和装置 | |
CN1860477A (zh) | 通过代理服务器的搜索系统和方法 | |
CN1470972A (zh) | 用于提供安全服务器密钥操作的系统和方法 | |
CN1528068A (zh) | 用于计算机网络中分布式数据处理的集成式保护的方法与系统 | |
CN1312510A (zh) | 电子钱包间安全操作的电子钱包系统 | |
CN1283040A (zh) | 利用管理信息分发多媒体数据的方法及系统 | |
CN1209249A (zh) | 访问通信网络上的目标实体的方法 | |
CN1208535A (zh) | 访问用于电信系统中的业务资源项的方法 | |
CN1692651A (zh) | Mpeg-21数字内容保护系统 | |
CN1542584A (zh) | 程序电子水印处理装置 | |
CN1839608A (zh) | 用于产生在不同域间使用的唯一用户身份的装置和方法 | |
CN1873652A (zh) | 保护数字内容的装置和方法,处理受保护的数字内容的装置和方法 | |
CN1437812A (zh) | 对设置参数层进行组织及组合以生成与通讯网络相关的实体的整体文件 | |
CN1503503A (zh) | 数据加密、解密方法及装置 | |
CN1764106A (zh) | 一种防止有通信条件/功能的软硬件被盗用的系统和方法 | |
CN1960553A (zh) | 一种防止有通信条件/功能的软硬件被盗用的系统和方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C06 | Publication | ||
PB01 | Publication | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
C19 | Lapse of patent right due to non-payment of the annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |