追溯码生成方法、装置、设备及可读存储介质转让专利

申请号 : CN202010931996.3

文献号 : CN111798254A

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 张文伟

申请人 : 平安国际智慧城市科技股份有限公司

摘要 :

本申请涉及数据安全技术领域,公开了一种追溯码生成方法,包括:根据选择的追溯码类型以及签名规则得到第一信息,并对所述第一信息进行编码得到第一字段;接收输入的物品信息,并根据所述物品信息得到第二字段;将所述第一字段、所述第二字段以及预设私钥进行处理,并根据所述签名规则对所述处理后的字段进行签名,以得到第三字段;将所述第一字段、所述第二字段以及所述第三字段进行拼接处理,得到对应的追溯码,其中,所述物品信息存储于区块链节点中。本申请还提供一种装置、计算机设备和存储介质。实现提高追溯码的使用安全性和适用性。

权利要求 :

1.一种追溯码生成方法,其特征在于,所述方法包括:根据选择的追溯码类型以及签名规则得到第一信息,并对所述第一信息进行编码得到第一字段;

接收输入的物品信息,并根据所述物品信息得到第二字段;

将所述第一字段、所述第二字段以及预设私钥进行处理,并根据所述签名规则对所述处理后的字段进行签名,以得到第三字段;

将所述第一字段、所述第二字段以及所述第三字段进行拼接处理,得到对应的追溯码。

2.根据权利要求1所述的方法,其特征在于,所述接收输入的物品信息,并根据所述物品信息得到第二字段,包括:接收输入的物品信息,并对所述物品信息进行特征提取,得到对应的特征信息,其中,所述物品信息存储于区块链节点中;

对所述特征信息进行编码,得到对应的第二字段。

3.根据权利要求2所述的方法,其特征在于,所述对所述特征信息进行编码,得到对应的第二字段,包括:获取所述特征信息中包含有加密标签的第一特征信息,以及不包含有加密标签的第二特征信息,其中,所述特征信息包含所述第一特征信息和所述第二特征信息;

利用预设的公钥对所述第一特征信息进行加密,得到加密后的第一特征信息,其中,所述公钥与所述私钥对应;

根据所设定的编码方式,对所述加密后的第一特征信息和所述第二特征信息进行编码,得到第二字段。

4.根据权利要求1所述的方法,其特征在于,所述将所述第一字段、所述第二字段以及预设私钥进行处理,并根据所述签名规则对所述处理后的字段进行签名,以得到第三字段,包括:将所述第一字段与所述第二字段进行拼接,得到待哈希字段;

计算所述待哈希字段对应的哈希值;

获取预设的私钥,并基于所述私钥对所述哈希值进行加密,以得到第三字段。

5.根据权利要求1所述的方法,其特征在于,所述方法还包括:当接收到追溯码验证指令时,接收输入的公钥;

获取待验证追溯码,并识别所述待验证追溯码所包含的第一字段、第二字段以及第三字段;

根据所述第一字段以及所述第二字段,得到对应的第一哈希值;

识别所述第一字段包含的签名规则,并根据所述公钥对所述第三字段进行验签。

6.根据权利要求5所述的方法,其特征在于,所述识别所述第一字段包含的签名规则,并根据所述公钥对所述第三字段进行验签,包括:识别所述第一字段包含的签名规则,并根据所述公钥以及所述签名规则对所述第三字段进行解签,得到第二哈希值;

将所述第一哈希值与所述第二哈希值进行对比,以对所述第三字段进行验签;

若所述第一哈希值与所述第二哈希值相同,则验签通过;

若所述第一哈希值与所述第二哈希值不相同,则验签失败。

7.根据权利要求6所述的方法,其特征在于,所述方法还包括:当确定验签失败时,生成包含有失败原因的验签失败信息,并将所述验签失败信息发送至触发所述追溯码验证指令的设备端;

当确定验签成功时,发出验证合格的提示信息,并将所述待验证追溯码的第二字段所包含的物品信息进行展示。

8.一种追溯码生成装置,其特征在于,所述装置包括:信息确定模块,用于根据选择的追溯码类型以及签名规则得到第一信息,并对所述第一信息进行编码得到第一字段;

信息输入模块,用于接收输入的物品信息,并根据所述物品信息得到第二字段;

数字签名模块,用于将所述第一字段、所述第二字段以及预设私钥进行处理,并根据所述签名规则对所述处理后的字段进行签名,以得到第三字段;

追溯码生成模块,用于将所述第一字段、所述第二字段以及所述第三字段进行拼接处理,得到对应的追溯码。

9.一种计算机设备,其特征在于,包括存储器和处理器:所述存储器中存储有计算机可读指令,所述计算机可读指令被所述处理器执行时,使得所述处理器执行如权利要求1至7中任一项所述的追溯码生成方法的步骤。

10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机程序,所述计算机可读指令被所述处理器执行时,使得一个或多个处理器执行如权利要求1至

7中任一项所述的追溯码生成方法的步骤。

说明书 :

追溯码生成方法、装置、设备及可读存储介质

技术领域

[0001] 本申请涉及数据安全技术领域,尤其涉及一种追溯码生成方法、追溯码生成装置、计算机设备及计算机可读存储介质。

背景技术

[0002] 我国相关部门、行业协会以及企业相继建立众多追溯系统,但是,由于各地政府以及部门建立各自的追溯平台,使得缺乏统一的管理和规划,导致重复建设严重。
[0003] 此外,这些平台在追溯编码、追溯精度、追溯模式等各方面具有较大差异,有的平台侧重于责任主体的监管,有的侧重于产品的追溯监管,有的侧重于企业生产管理的监管,有的是追溯到产品批次,有的追溯到单品。
[0004] 企业面对各级政府部门不同的监管需求,在不同的无法互联互通的追溯平台上填报不同的追溯信息,导致无所适从。
[0005] 因此,现在亟需一种提高追溯码适用性的追溯码生成方法。

发明内容

[0006] 本申请提供了一种追溯码生成方法、装置、计算机设备及存储介质,以提高追溯码的使用安全性和适用性。
[0007] 第一方面,本申请提供了一种追溯码生成方法,所述方法包括:根据选择的追溯码类型以及签名规则得到第一信息,并对所述第一信息进行编码得到第一字段;
接收输入的物品信息,并根据所述物品信息得到第二字段;
将所述第一字段、所述第二字段以及预设私钥进行处理,并根据所述签名规则对所述处理后的字段进行签名,以得到第三字段;
将所述第一字段、所述第二字段以及所述第三字段进行拼接处理,得到对应的追溯码。
[0008] 第二方面,本申请还提供了一种追溯码生成装置,所述装置包括:信息确定模块,用于根据选择的追溯码类型以及签名规则得到第一信息,并对所述第一信息进行编码得到第一字段;
信息输入模块,用于接收输入的物品信息,并根据所述物品信息得到第二字段;
数字签名模块,用于将所述第一字段、所述第二字段以及预设私钥进行处理,并根据所述签名规则对所述处理后的字段进行签名,以得到第三字段;
追溯码生成模块,用于将所述第一字段、所述第二字段以及所述第三字段进行拼接处理,得到对应的追溯码。
[0009] 第三方面,本申请还提供了一种计算机设备,所述计算机设备包括存储器和处理器;所述存储器用于存储计算机程序;所述处理器,用于执行所述计算机程序并在执行所述计算机程序时实现如上述的追溯码生成方法。
[0010] 第四方面,本申请还提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时使所述处理器实现如上述的追溯码生成方法。
[0011] 本申请公开了一种追溯码生成方法、装置、计算机设备及存储介质,利用追溯码的类型以及签名规则生成得到第一字段,将物品信息进行处理以得到第二字段,然后利用签名规则利用生产商唯一的私钥、第一字段和第二字段以实现签名,得到第三字段,最后将第一字段、第二字段以及第三字段进行拼接得到最后的追溯码。实现在生成追溯码时,预先设定追溯码的构建方式,以按照所设定的方式实现追溯码的生成,而在追溯码使用时,通过公钥即可实现对追溯码的验证,提高了追溯码对不同系统的适用性,同时利用密码学技术对追溯码进行处理,可以更好了追溯码的安全性。同时,追溯码更好的适用性可以提高不同系统之间的数据信息的互通和交互。

附图说明

[0012] 为了更清楚地说明本申请实施例技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0013] 图1为本申请一个实施例提供的一种追溯码生成方法的流程示意图;图2为本申请一个实施例提供的一种得到第二字段的步骤的流程示意图;
图3为本申请一个实施例提供的一种得到第三字段的步骤的流程示意图;
图4为本申请一个实施例提供的一种追溯码验签的步骤的流程示意图;
图5为本申请一个实施例提供的一种追溯码生成装置的示意性框图;
图6为本申请一个实施例提供的一种计算机设备的结构示意性框图。

具体实施方式

[0014] 下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
[0015] 附图中所示的流程图仅是示例说明,不是必须包括所有的内容和操作/步骤,也不是必须按所描述的顺序执行。例如,有的操作/步骤还可以分解、组合或部分合并,因此实际执行的顺序有可能根据实际情况改变。
[0016] 应当理解,在此本申请说明书中所使用的术语仅仅是出于描述特定实施例的目的而并不意在限制本申请。如在本申请说明书和所附权利要求书中所使用的那样,除非上下文清楚地指明其它情况,否则单数形式的“一”、“一个”及“该”意在包括复数形式。
[0017] 还应当进理解,在本申请说明书和所附权利要求书中使用的术语“和/或”是指相关联列出的项中的一个或多个的任何组合以及所有可能组合,并且包括这些组合。
[0018] 下面结合附图,对本申请的一些实施方式作详细说明。在不冲突的情况下,下述的实施例及实施例中的特征可以相互组合。
[0019] 请参阅图1,图1为本申请一个实施例提供的一种追溯码生成方法的流程示意图。
[0020] 如图1所示,该追溯码生成方法包括步骤S101至步骤S104。
[0021] 步骤S101、根据选择的追溯码类型以及签名规则得到第一信息,并对所述第一信息进行编码得到第一字段。
[0022] 追溯码用于进行信息的记录,以便于后续进行信息的查询和验证。在实际应用中,追溯码的设定,可以是一企一码、一品一码以及一物一码,不同的设定方式针对的场景和需求有所不同,具体根据实际的需求所设定。
[0023] 一企一码是根据录入的企业相关数据生成一个追溯码,一品一码是根据录入企业及某相同产品相关数据为企业某相同产品生成一个追溯码,一物一码是根据一个物品的相关数据以及企业信息为每一个物品生成一个追溯码。根据各方式的优缺点以及使用场景,在条件允许的情况下,可以为每一个物品/产品生成对应的追溯码,亦可以对每一个产品的相关信息进行追溯和验证。
[0024] 在追溯码的生成过程中,追溯码可以根据多种不同的方式生成得到,因此,在生成对应的追溯码时,首先要确定当前所使用的方法和手段,也就是确定追溯码类型以及后续所使用到的签名规则,进而在生成追溯码时按照所确定的信息实现追溯码的获取。
[0025] 其中,追溯码类型是生成追溯码的一种方式,具体为追溯码记录信息的方式,比如有的追溯码直接记录物品的信息,再比如有的追溯码会记录相关的验证信息等,不同的追溯码生成方式使得所生成得到的追溯码具有不同的形态,因此合理的选择和设定追溯码类型可以更好的保证追溯码的通用性和安全性。在一实施例中,使用基于统一追溯交换法的方式生成对应的追溯码时,此时所对应的类型可以是UTEC(Uniform Trace Exchange Code)。
[0026] 对于签名规则,是在追溯码生成过程中对所得到的字段信息进行签名的手段和方式,具体为一种签名算法,比如HMAC算法,不同的签名算法有着各自对应的优缺点,因此可以根据实际的需求合理选择更加合适的签名算法。
[0027] 在一实施例中,追溯码的构成是预先所设定好的,以使得追溯码具有更好的通用性。示例性的,追溯码可以有三个不同的字段所构成,且不同字段记录有不同的数据信息,同时个字段之间利用相应的分隔符所隔断,例如“.”,因此追溯码的具体形式可以是“xxxxx.yyyyy.zzzzz”,其中,“xxxxx”为第一字段,“yyyyy”为第二字段,“zzzzz”为第三字段,且各字段由相应的字符串构成,各字段记录有不同的数据信息。
[0028] 在一实施例中,第一字段由所选择的追溯码类型以及签名规则所得到,因此,在确定了当前所对应的追溯码类型以及签名规则时,得到对应的第一信息,然后根据所得到的第一信息得到对应的第一字段。
[0029] 第一字段中记录有该追溯码对应的类型以及所使用的签名规则,因此在确定了当前所选择的追溯码类型以及签名规则时,将追溯码类型和签名规则转化为可以进行统一管理的形式,由于追溯码类型和签名规则在表述上可能存在差异,比如一个是文字描述一个是字母描述,那么此时可以将追溯码类型和签名规则使用唯一的标识进行描述,比如数字编号,然后对追溯码类型和签名规则所得到的信息进行编码,以得到对应的第一字段。
[0030] 需要说明的是,在对追溯码类型和签名规则进行编码时,所使用的编码方式不限,依据实际的需求可选择合适的方式实现编码,比如可以使用Base64Url方式进行编码。
[0031] 步骤S102、接收输入物品信息,并根据所述物品信息得到第二字段。
[0032] 对于追溯码而言,是用于对产品/物品信息进行记录的,因此,在生成追溯码时,需要将相应的物品信息进行上传和输入,以得到产品对应的追溯码。具体地,在得到第一字段之后,将接受输入的物品信息,然后根据所得到的物品信息生成得到对应的第二字段,其中,物品信息可以存储在区块链节点中。
[0033] 物品信息用于对物品的详细信息进行描述,以使得客户或者追溯人员可以准确对物品信息进行获取,其中物品信息可以包括生产厂商、物品成分以及物品的有效信息等,因此在得到第二字段时,利用实际输入的物品信息所得到。
[0034] 在一实施例中,物品信息可以是单个产品的信息,也可以是同类产品的信息,也就是一物一码和一品一码,对于两种不同的形式,主要是有产品自身所决定的,其中,一物一码更多的适用于产品品类繁多,产品附加值高,有单品防伪追溯和品牌保护需求的中等以上规模品牌企业,一品一码则更多的适用于产品品类丰富,产品附加值低,自动化程度高的中等规模企业。
[0035] 同样的,对于一企一码的追溯码形式,所适用的场景为产品单一品牌保护意识不强,低成本建立溯源体系的小规模企业。无需针对一类或者一个产品进行单独的追溯码设定。
[0036] 需要说明的是,步骤S102与步骤S101在实现过程中不限定有先后顺序,也就是步骤S102可以与步骤S101同时进行,还可以是步骤S102在步骤S101之前进行。
[0037] 在一实施例中,针对单个物品而言,在根据物品信息得到第二字段时包括:接收输入的物品信息,并对所述物品信息进行特征提取,得到对应的特征信息;对所述特征信息进行编码,得到对应的第二字段。
[0038] 在生成追溯码时,需要将物品的相关信息都记录在所生成得到的追溯码中,因此在生成追溯码时,还将获取对应的物品信息。具体地,接收输入的物品信息,为了可以更加准确合适的对物品进行描述,对所得到的物品信息进行特征提取,以得到可以用来对物品进行描述的特征信息。
[0039] 在一实施例中,在对物品信息进行特征信息的提取时,可以针对不同的物品设置不同的特征提取方式,使得所得到的特征信息可以更准确和简洁的对物品进行描述。比如对于农产品(食用产品),更加重要的信息可能是生产信息以及产地信息,再比如消费产品,更加重要的可能是企业信息,因此可以合理的根据物品所述的领域或者类型,进行更加准确的特征信息的提取。
[0040] 在对追溯码进行追溯验证时,所需要验证的信息有很多,比如生产企业、批文/许可信息<可选>、注册/监管机构、产品名、物品分类编码、包装信息、生产批次、生产日期、序列号、有效期等要素,因此,在进行特征信息的提取时,也就需要对进行追溯所需要的数据信息进行获取,通过对物品信息进行识别,以得到所需要的数据信息,也就是特征信息。
[0041] 示例性的,在对物品信息进行特征提取时所得到的数据信息包括有必要信息以及可选信息,其中,必要信息包括:生产企业iss(issuer)、产品信息sub(subject)、生产日期iat(issued At)、失效日期exp(expiration time)以及批次bch(batch)等,可选信息包括:注册/监管结构reg、包装信息pkg(package)以及单品序号ser(serial)等。
[0042] 例如,物品信息可以如下:{
  "iss": "西南药业股份有限公司",
  "sub": "…",
  "iat": "…",
  "exp": "…",
  "bch": "…",
  "pkg": "…",
  "ser": "…"
}
在得到物品信息所对应的特征信息之后,同样会进行相应的编码,以得到对应的第二字段。然而,对于所得到的特征信息,所对应的表述形式是多种多样的,如文字、数字或者字母,因此,在得到特征信息之后,可以对所得到的每一个特征信息进行字符串转化,然后将所有的字符串进行拼接得到物品信息对应的总字符串,进而根据预设的编码方式对所得到的总字符串进行编码,以得到对应的第二字段。
[0043] 在一实施例中,对应物品信息而言,可能会存在有需要进行加密的信息,因此在得到物品信息以及相对应的特征信息之后,在进行编码之前,确定需要进行加密的信息和特征信息,然后获取预设的公钥,在进行编码之前对需要进行加密的信息和对应的特征信息进行加密,在加密完成之后进行编码,以得到对应的第二字段。
[0044] 参照图2,图2为本申请一个实施例提供的一种得到的第二字段的步骤的流程示意图。其中,该步骤包括步骤S201至步骤S203。
[0045] 步骤S201、获取所述特征信息中包含有加密标签的第一特征信息,以及不包含有加密标签的第二特征信息,其中,所述特征信息包含所述第一特征信息和所述第二特征信息;步骤S202、利用预设的公钥对所述第一特征信息进行加密,得到加密后的第一特征信息,其中,所述公钥与所述私钥对应;
步骤S203、根据所设定的编码方式,对所述加密后的第一特征信息和所述第二特征信息进行编码,得到第二字段。
[0046] 对于物品信息而言,可以对不同的信息进行相应的标记,比如有的信息需要保密,有的信息可以公开,以使得在得到特征信息时,不同的特征信息也会有着不同的标记,比如加密标签,对于需要进行保密的信息,通过标记有加密标签,使得在生成第二字段时需要首先对具有加密标签的特征信息进行加密,然后再进行后续的处理。
[0047] 因此,在对物品信息进行特征提取得到对应的特征信息之后,将获取特征信息中包含有加密标签的第一特征信息,而对于不包含有加密标签的特征信息标注为第二特征信息,然后利用相应的公钥对第一标签信息进行加密,以得到加密后的第一特征信息,进而按照所设定的编码方式对加密后的第一特征信息和第二特征信息进行编码,得到对应的第二字段。
[0048] 在对第一特征信息进行加密时,使得第一特征信息在验证和信息查询时不会被查看,由于第一特征信息利用根据数字证书得到的公钥进行加密的,使得只有使用对应的私钥才能进行查询,因此保证了信息的安全性。对于此时所得到的第二字段,虽然包含有第一特征信息,但是在没有使用私钥进行解密时,是不能被查看的。
[0049] 在进行处理得到第二字段时,比如,所得到的特征信息有A、B以及C,由于需要保证信息C的私密性,将使用预设的公钥对C进行加密,在加密完成之后,对A、B以及加密之后的C进行字符串转化,然后再进行相应的编码得到对应的第二字段。
[0050] 步骤S103、将所述第一字段、所述第二字段以及预设私钥进行处理,并根据所述签名规则对处理后的字段进行签名,以得到第三字段。
[0051] 私钥是预先所设定的,且与上述描述中所提及的公钥相对应。对于每一个生产商而言,都有着各自对应的签名专用数字证书,对于监管机构而言,每一个签名专用证书对应着以对公私钥,以便于追溯码的生成与验证。
[0052] 因此,在得到第一字段和第二字段之后,将获取预先所得到的且与公钥相对应的私钥,然后进行相应的处理,进而根据第一字段中所包含的签名规则对进行处理所得到的结果信息进行签名,以得到对应的第三字段。
[0053] 对于实际的签名过程,是以一个密钥和一个消息为输入,生成一个消息摘要作为输出。示例性的,在一实施例中,密钥为与生产商所对应的私钥(与公钥相对应),消息为第一字段和第二字段,在签名时,将私钥、第一签名和第二签名作为输入,以输出得到一个签名信息,即为第三字段。
[0054] 在一实施例中,参照图3,图3为本申请一个实施例提供的一种得到第三字段的步骤的流程示意图,其中,步骤S103包括步骤S301至步骤S303。
[0055] 步骤S301、将所述第一字段与所述第二字段进行拼接,得到待哈希字段;步骤S302、计算所述待哈希字段对应的哈希值;
步骤S303、获取预设的私钥,并基于所述私钥对所述哈希值进行加密,以得到第三字段。
[0056] 第三字段是根据第一字段和第二字段所得到的,因此,在得到第三字段之前需要将第一字段与第二字段进行拼接,以得到的拼接之后的字段,由于在进行签名时,需要对进行签名的信息进行哈希,因此将拼接所得到的字段称为待哈希字段,然后利用预先所设定的哈希计算方法计算待哈希字段所对应的哈希值,进而获取预先所输入的私钥,以利用私钥对所得到的哈希值进行加密,得到所需要的第三字段。
[0057] 在一实施例中,在对第一字段和第二字段进行拼接时,不限制具体的拼接方式,可以是“第一字段”+“第二字段”,也可以是“第二字段”+“第一字段”,但是由于哈希值的唯一性,使得不同的拼接方式所对应的哈希值也是有所不同的,因此,对于所使用的拼接方式可以进行相应的存储,还可以对第一字段和第二字段进行标记。
[0058] 在实际应用中,典型的哈希算法包括 MD2、MD4、MD5和SHA-1,而在对所得到的待哈希字段进行哈希值计算时,并不限定所使用的哈希算法,但是在进行验证时需要使用与此处相同的哈希算法,以保证哈希值计算的准确性。
[0059] 在进行加签处理时,根据利用数字证书所得到的私钥进行加签,数字证书可以得到对应的公钥和私钥,在使用过程中,利用私钥对需要加签的信息进行签名,然后在进行查看时利用公钥对加签之后的签名进行解签,以得到进行查看的信息。
[0060] 例如,在进行加签时,若使用HMAC SHA256算法进行签名,签名可以按照如下方式生成:HMAC SHA256(
base64Url Encode(header) + "." +
base64Url Encode(payload),
privateKey
)
其中,base64Url Encode(header)为第一字段,base64Url Encode(payload)为第二字段,且第一字段与第二字段均基于base64Url编码方式所得到,privateKey为私钥。
[0061] 通过将第一字段、第二字段以及私钥进行输入,进而进行相应的处理,以得到对应的加签结果。在进行哈希计算时,是对字进行字段拼接所得到的“base64Url Encode(header)  .base64Url Encode(payload)”进行哈希计算,然后使用私钥“privateKey”进行加签,得到加签后的签名,也就是第三字段。在对所得到的哈希值进行签名的过程,也是一个加密的过程,以保证所得到的签名(第三字段)的安全性。
[0062] 步骤S104、将所述第一字段、所述第二字段以及所述第三字段进行拼接处理,得到对应的追溯码。
[0063] 在得到第一字段、第二字段以及第三字段之后,将会进行相应的拼接,以得到所要获取的追溯码。实际上,对于所得到的第一字段、第二字段以及第三字段而言,在追溯码的使用过程中都具有各自对应的作用,比如第一字段中所记录的追溯码类型和签名规则可以用来在进行验签时选择合适的方式进行验签,第二字段中所记录的物品信息和第三字段可以用来确定物品信息是否被修改,通过对比第二字段与第三字段中所记录的数据信息是否一致,来确定物品信息是否存在被修改的情况。
[0064] 在一实施例中,追溯码有三个不同的字段所组成,因此在得到第一字段、第二字段以及第三字段之后,按照所设定的拼接方式将三个不同的字段进行拼接,而一般情况下,所得到的追溯码的形式如上描述“第一字段.第二字段.第三字段”,也就是可以设定每个字段所对应位置,而一般情况下可以根据数据信息的获取顺序来确定,还可以不设定具体的拼接方式,但是在一实施例中,将追溯码的拼接形式设置为“第一字段+第二字段+第三字段”,且每个字段之间通过对应的连接方式所连接,比如利用“.”。
[0065] 在实际应用中,在得到追溯码之后,生产厂商还可以根据需求将追溯码转化为对应的条形码或者二维码等。
[0066] 示例性的,对于追溯码而言,可以设定追溯码的构成有三个部分组成,包括第一字段、第二字段以及第三字段,其中,第一字段为头部字段,用于记录追溯码类型以及追溯码生成规则,第二字段为载荷字段,用于记录物品的相关信息,第三字段为签名字段,由第一字段和第二字段利用私钥进行加密签名。
[0067] 在实际应用中,对于第一字段和第二字段而言,利用生成第一字段和第二字段的编码方式进行解码,即可以获取第一字段和第二字段所包含的相关信息,同时对于第一字段和第二字段而言,是可以被任意修改的。但是对于第三字段而言,首先需要进行解密才能得到第三字段中所包含的信息,同时对于第三字段所包含的数据信息而言,虽然是基于第一字段和第二字段所得到的,但是也是基于私钥所得到的,因此在进行签名时,只有拥有该私钥的生产商才能进行签名,因此对于一个已经生成得到的追溯码而言,是不可改变的。
[0068] 参照图4,图4为本申请一个实施例提供的一种追溯码验签步骤的流程示意图。其中,该步骤包括步骤S401至步骤S403。
[0069] 步骤S401、当接收到追溯码验证指令时,接收输入的公钥;步骤S402、获取待验证追溯码,并识别所述待验证追溯码所包含的第一字段、第二字段以及第三字段;
步骤S403、根据所述第一字段以及所述第二字段,得到对应的第一哈希值;
步骤S404、识别所述第一字段包含的签名规则,并根据所述公钥对所述第三字段进行验签。
[0070] 在对追溯码进行验证时,主要是通过验证第二字段与第三字段的匹配性,即第二字段与第三字段中所记录的数据信息是否相同。
[0071] 在一实施例中,在需要对追溯码进行验证时,接收相应的追溯码验证指令,同时接收所输入的公钥,然后获取需要进行验证的追溯码,以对待验证追溯码中所包含的第一字段、第二字段以及第三自动进行识别和获取,进而根据所得到的第一字段和第二字段按照上述所描述的追溯码生成过程中所使用的哈希计算方式,计算得到待验证追溯码中第一字段和第二字段所对应的第一哈希值,同时利用第一字段中所包含的签名规则,利用所输入的公钥对第三字段进行验签,确定进行验签所得到的第二哈希值与此时计算所得到的第一哈希值是否相同,来实现对追溯码的验证。
[0072] 对于按照上述方式所生成得到的追溯码,在进行验证时,通过验证第二字段中所记录的信息与第三字段中所记录的信息是否相同,以确定追溯码是否为合格正确的追溯码,若第二字段与第三字段所记录的信息相同,则追溯码合格,反之则不合格。
[0073] 在实际应用过程中,公钥与私钥是唯一对应的,且时根据生产厂商的数字证书所得到的,因此,为了实现对追溯码的验证,需要获取与进行签名的私钥相对应的公钥,在接收到追溯码验证指令时,同时接收输入的公钥,进而利用公钥以及相应的签名方式对追溯码进行验证。当公钥不能实现对第三字段的解签时,说明该公钥不是与私钥相对应的公钥。
[0074] 其中,追溯码的验证通常情况下是在相应的验证平台上实现的,比如移动终端上的应用程序或者系统平台,通过在验证平台上进行相应的操作,实现对追溯码的验证,而对于需要进行验证的追溯码,可以是通过人为输入或者扫描的方式进行输入,具体不做限制。
[0075] 在一实施例中,在对追溯码进行验证时,本质是对追溯码中第一字段与第二字段和第三字段中所记录的信息是否相同,因此在得到待验证追溯码时,对追溯码进行拆分,得到三个不同的字段,即第一字段、第二字段和第三字段,由于每个字段之间利用相应的分隔符所连接,因此通过识别追溯码中的分隔符,以实现对追溯码的拆分。
[0076] 示例性的,在对待验证追溯码进验证时,可以利用记录在第三字段中的哈希值实现验证,因此在得到三个字段之后,将第一字段和第二字段进行拼接,进而按照上述所使用的哈希计算方式得到此时所对应的哈希值,为了保证哈希计算的准确性,因此需要使用相同的哈希计算方式进行处理,因此此时将利用步骤S302中所使用的哈希计算方式进行哈希计算,以得到此时所对应的哈希值。
[0077] 在进行最终的验签时,使用所接收到的公钥以及第一字段中所包含的签名规则对第三字段进行解签,从得到第三字段中所包含的哈希值。然后再将第三字段中所包含的哈希值与根据待验证追溯码的第一字段和第二字段所得到的哈希值进行对比,确定两者是否相同,若两者一致,则说明这个追溯码没有被修改过,也就是正确合格的追溯码,反之则确定被修改过。
[0078] 在一实施例中,在进行验证时,所得到的验证结果包括验证合格和验证失败,其中,验证合格即为进行验证的追溯码是没有被修改的,验证失败即为进行验证的追溯码可能被修改或者所使用的公钥为错误公钥。
[0079] 因此,在进行验证时,若所得到的验证结果为验证合格,那么将会发出验证合格的提示信息,其中提示信息可以是语音信息或者文字信息,然后还可以将进行验证的追溯码中所记录的物品信息进行展示,比如展示在进行验证的设备相应的界面上。
[0080] 若所得到的验证结果为验证失败,那么此时将确定验证失败的原因,然后根据所得到的验证失败的原因生成对应的验签失败信息,以进行反馈。比如,在进行验证过程中,若是因为公钥与追溯码所使用的私钥不匹配,那么验签失败信息可以是“公钥错误”,若是因为追溯码中所记录的信息被修改,那么眼前失败信息可以是“追溯码被修改”。追溯码验证失败的原因可能还会有其他的情况,因此可以根据实际的情况确定不同状态下的反馈方式。
[0081] 在一实施例中,若是因为公钥输入的错误导致验签失败,那么在验签失败时可以提示用户进行再次输入以进行再一次的验证,并在接收到再次输入的公钥时确定所输入的公钥是否为正确的公钥。
[0082] 在上述描述的追溯码生成方法中,利用追溯码的类型以及签名规则生成得到第一字段,将物品信息进行处理以得到第二字段,然后利用签名规则利用生产商唯一的私钥、第一字段和第二字段以实现签名,得到第三字段,最后将第一字段、第二字段以及第三字段进行拼接得到最后的追溯码。实现在生成追溯码时,预先设定追溯码的构建方式,以按照所设定的方式实现追溯码的生成,而在追溯码使用时,通过公钥即可实现对追溯码的验证,提高了追溯码对不同系统的适用性,同时利用密码学技术对追溯码进行处理,可以更好了追溯码的安全性。同时,追溯码更好的适用性可以提高不同系统之间的数据信息的互通和交互。
[0083] 请参阅图5,图5为本申请一个实施例提供的一种追溯码生成装置的示意性框图,该装置用于执行前述的追溯码生成方法。
[0084] 如图5所示,该追溯码生成装置500包括:信息确定模块501,用于根据选择的追溯码类型以及签名规则得到第一信息,并对所述第一信息进行编码得到第一字段;
信息输入模块502,用于接收输入的物品信息,并根据所述物品信息得到第二字段;
数字签名模块503,用于将所述第一字段、所述第二字段以及预设私钥进行处理,并根据所述签名规则对所述处理后的字段进行签名,以得到第三字段;
追溯码生成模块504,用于将所述第一字段、所述第二字段以及所述第三字段进行拼接处理,得到对应的追溯码。
[0085] 进一步地,在一个实施例中,所述信息输入模块502具体还用于:接收输入的物品信息,并对所述物品信息进行特征提取,得到对应的特征信息;对所述特征信息进行编码,得到对应的第二字段。
[0086] 进一步地,在一个实施例中,所述信息输入模块502具体还用于:获取所述特征信息中包含有加密标签的第一特征信息,以及不包含有加密标签的第二特征信息,其中,所述特征信息包含所述第一特征信息和所述第二特征信息;利用预设的公钥对所述第一特征信息进行加密,得到加密后的第一特征信息,其中,所述公钥与所述私钥对应;根据所设定的编码方式,对所述加密后的第一特征信息和所述第二特征信息进行编码,得到第二字段。
[0087] 进一步地,在一个实施例中,所述数字签名模块503具体还用于:将所述第一字段与所述第二字段进行拼接,得到待哈希字段;计算所述待哈希字段对应的哈希值;获取预设的私钥,并基于所述私钥对所述哈希值进行加密,以得到第三字段。
[0088] 进一步地,在一个实施例中,所述追溯码生成装置500具体还用于:当接收到追溯码验证指令时,接收输入的公钥;获取待验证追溯码,并识别所述待验证追溯码所包含的第一字段、第二字段以及第三字段;根据所述第一字段以及所述第二字段,得到对应的第一哈希值;识别所述第一字段包含的签名规则,并根据所述公钥对所述第三字段进行验签。
[0089] 进一步地,在一个实施例中,所述追溯码生成装置500具体还用于:识别所述第一字段包含的签名规则,并根据所述公钥以及所述签名规则对所述第三字段进行解签,得到第二哈希值;将所述第一哈希值与所述第二哈希值进行对比,以对所述第三字段进行验签;若所述第一哈希值与所述第二哈希值相同,则验签通过;若所述第一哈希值与所述第二哈希值不相同,则验签失败。
[0090] 进一步地,在一个实施例中,所述追溯码生成装置500具体还用于:当确定验签失败时,生成包含有失败原因的验签失败信息,并将所述验签失败信息发送至触发所述追溯码验证指令的设备端;当确定验签成功时,发出验证合格的提示信息,并将所述待验证追溯码的第二字段所包含的物品信息进行展示。
[0091] 需要说明的是,所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,上述描述的装置和各模块的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
[0092] 上述的装置可以实现为一种计算机程序的形式,该计算机程序可以在如图6所示的计算机设备上运行。
[0093] 请参阅图6,图6为本申请一个实施例提供的一种计算机设备的结构示意性框图。该计算机设备可以是服务器。
[0094] 参阅图6,该计算机设备包括通过系统总线连接的处理器、存储器和网络接口,其中,存储器可以包括非易失性存储介质和内存储器。
[0095] 非易失性存储介质可存储操作系统和计算机程序。该计算机程序包括程序指令,该程序指令被执行时,可使得处理器执行任意一种追溯码生成方法。
[0096] 处理器用于提供计算和控制能力,支撑整个计算机设备的运行。
[0097] 内存储器为非易失性存储介质中的计算机程序的运行提供环境,该计算机程序被处理器执行时,可使得处理器执行任意一种追溯码生成方法。
[0098] 该网络接口用于进行网络通信,如发送分配的任务等。本领域技术人员可以理解,图6中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
[0099] 应当理解的是,处理器可以是中央处理单元 (Central Processing Unit,CPU),该处理器还可以是其他通用处理器、数字信号处理器 (Digital Signal Processor,DSP)、专用集成电路 (Application Specific Integrated Circuit,ASIC)、现场可编程门阵列 (Field-Programmable Gate Array,FPGA) 或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。其中,通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
[0100] 其中,在一个实施例中,所述处理器用于运行存储在存储器中的计算机程序,以实现如下步骤:根据选择的追溯码类型以及签名规则得到第一信息,并对所述第一信息进行编码得到第一字段;
接收输入的物品信息,并根据所述物品信息得到第二字段;
将所述第一字段、所述第二字段以及预设私钥进行处理,并根据所述签名规则对所述处理后的字段进行签名,以得到第三字段;
将所述第一字段、所述第二字段以及所述第三字段进行拼接处理,得到对应的追溯码。
[0101] 在一个实施例中,所述处理器在实现所述接收输入的物品信息,并根据所述物品信息得到第二字段时,还用于实现:接收输入的物品信息,并对所述物品信息进行特征提取,得到对应的特征信息;对所述特征信息进行编码,得到对应的第二字段。
[0102] 在一个实施例中,所述处理器在实现所述对所述特征信息进行编码,得到对应的第二字段时,还用于实现:获取所述特征信息中包含有加密标签的第一特征信息,以及不包含有加密标签的第二特征信息,其中,所述特征信息包含所述第一特征信息和所述第二特征信息;利用预设的公钥对所述第一特征信息进行加密,得到加密后的第一特征信息,其中,所述公钥与所述私钥对应;根据所设定的编码方式,对所述加密后的第一特征信息和所述第二特征信息进行编码,得到第二字段。
[0103] 在一个实施例中,所述处理器在实现所述将所述第一字段、所述第二字段以及预设私钥进行处理,并根据所述签名规则对所述处理后的字段进行签名,以得到第三字段时,还用于实现:将所述第一字段与所述第二字段进行拼接,得到待哈希字段;计算所述待哈希字段对应的哈希值;获取预设的私钥,并基于所述私钥对所述哈希值进行加密,以得到第三字段。
[0104] 在一个实施例中,所述处理器在实现所述计算机程序时,还用于实现:当接收到追溯码验证指令时,接收输入的公钥;获取待验证追溯码,并识别所述待验证追溯码所包含的第一字段、第二字段以及第三字段;根据所述第一字段以及所述第二字段,得到对应的第一哈希值;识别所述第一字段包含的签名规则,并根据所述公钥对所述第三字段进行验签。
[0105] 在一个实施例中,所述处理器在实现所述识别所述第一字段包含的签名规则,并根据所述公钥对所述第三字段进行验签时,还用于实现:识别所述第一字段包含的签名规则,并根据所述公钥以及所述签名规则对所述第三字段进行解签,得到第二哈希值;将所述第一哈希值与所述第二哈希值进行对比,以对所述第三字段进行验签;若所述第一哈希值与所述第二哈希值相同,则验签通过;若所述第一哈希值与所述第二哈希值不相同,则验签失败。
[0106] 在一个实施例中,所述处理器在实现所述计算机程序时,还用于实现:当确定验签失败时,生成包含有失败原因的验签失败信息,并将所述验签失败信息发送至触发所述追溯码验证指令的设备端;当确定验签成功时,发出验证合格的提示信息,并将所述待验证追溯码的第二字段所包含的物品信息进行展示。
[0107] 本申请的实施例中还提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序中包括程序指令,所述处理器执行所述程序指令,实现本申请实施例提供的任一项追溯码生成方法。
[0108] 其中,所述计算机可读存储介质可以是前述实施例所述的计算机设备的内部存储单元,例如所述计算机设备的硬盘或内存。所述计算机可读存储介质也可以是所述计算机设备的外部存储设备,例如所述计算机设备上配备的插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(Flash Card)等。
[0109] 进一步地,所述计算机可读存储介质可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序等;存储数据区可存储根据区块链节点的使用所创建的数据等。
[0110] 另外,本申请所指区块链是分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应用模式。区块链(Blockchain),本质上是一个去中心化的数据库,是一串使用密码学方法相关联产生的数据块,每一个数据块中包含了一批次网络交易的信息,用于验证其信息的有效性(防伪)和生成下一个区块。区块链可以包括区块链底层平台、平台产品服务层以及应用服务层等。
[0111] 以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到各种等效的修改或替换,这些修改或替换都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以权利要求的保护范围为准。