首页> 中国专利> 数据脱敏方法、数据脱敏装置、电子设备及存储介质

数据脱敏方法、数据脱敏装置、电子设备及存储介质

摘要

本申请公开了一种数据脱敏方法、数据脱敏装置、电子设备及存储介质。数据脱敏方法包括:获取需要进行脱敏处理的敏感数据;对所述敏感数据进行散列运算,得到散列字符串;确定所述散列字符串中各字符的类型;根据所述各字符的类型的排序特征,基于预设位置选择规则,确定在所述散列字符串中加入随机盐值的位置;根据所确定的位置,在所述散列字符串中加入随机盐值,得到加入随机盐值后的字符串;对所述加入随机盐值后的字符串进行散列运算,得到脱敏后的数据。本申请的数据脱敏方法大大增加了将脱敏后的数据还原为脱敏前的数据的难度,因此安全性更高,大大降低了敏感数据泄露的风险,满足敏感数据的安全性保障要求。

著录项

  • 公开/公告号CN113094742A

    专利类型发明专利

  • 公开/公告日2021-07-09

    原文格式PDF

  • 申请/专利权人 国政通科技有限公司;

    申请/专利号CN202110275865.9

  • 发明设计人 祁文义;胡红永;

    申请日2021-03-15

  • 分类号G06F21/62(20130101);

  • 代理机构11619 北京辰权知识产权代理有限公司;

  • 代理人孔垂超

  • 地址 100029 北京市西城区北三环中路23号燕莎盛世大厦三层

  • 入库时间 2023-06-19 11:45:49

说明书

技术领域

本申请涉及数据脱敏技术领域,具体涉及一种数据脱敏方法、数据脱敏装置、电子设备及存储介质。

背景技术

随着互联网技术的飞速发展,数据共享技术得到越来越广泛的应用。数据共享技术的广泛应用在为人们日常生活带来便利的同时,也增加了个人信息敏感数据(例如身份证号码、手机号码、银行卡号等等)泄漏的风险。个人信息敏感数据的泄漏,容易被犯罪分子所利用,导致例如电信诈骗等犯罪案件,对用户的生命财产造成极大的安全隐患。因此对个人信息敏感数据的保护是当前亟待解决的问题。

发明内容

本申请的目的是提供一种数据脱敏方法、数据脱敏装置、电子设备及存储介质。为了对披露的实施例的一些方面有一个基本的理解,下面给出了简单的概括。该概括部分不是泛泛评述,也不是要确定关键/重要组成元素或描绘这些实施例的保护范围。其唯一目的是用简单的形式呈现一些概念,以此作为后面的详细说明的序言。

根据本申请实施例的一个方面,提供一种数据脱敏方法,包括:

获取需要进行脱敏处理的敏感数据;

对所述敏感数据进行散列运算,得到散列字符串;

确定所述散列字符串中各字符的类型;

根据所述各字符的类型的排序特征,基于预设位置选择规则,确定在所述散列字符串中加入随机盐值的位置;

根据所确定的位置,在所述散列字符串中加入随机盐值,得到加入随机盐值后的字符串;

对所述加入随机盐值后的字符串进行散列运算,得到脱敏后的数据。

进一步地,在所述得到脱敏后的数据之后,所述数据脱敏方法还包括:

检测所述脱敏后的数据的存储位置与所述敏感数据的存储位置是为同一存储位置;

若是,则删除所述敏感数据,并将所述脱敏后的数据存储到原用于存储所述敏感数据的存储位置。

进一步地,所述预设位置选择规则为散列字符串中字符类型的排序特征与随机盐值加入位置之间的对应关系。

进一步地,所述获取需要进行脱敏处理的敏感数据,包括:

获取待处理数据的字段名;

将所述字段名与预设敏感数据字段名集合中所包含的字段名进行对比,判断所述待判定数据的字段名是否属于所述预设敏感数据字段名集合;

若属于,则确定所述待判定数据为敏感数据,提取所述敏感数据。

进一步地,所述获取需要进行脱敏处理的敏感数据,包括:

遍历待处理数据中的每个字段,确定每个字段的数据组成格式以及数据长度;

将所述每个字段的数据组成格式以及数据长度分别与预设敏感数据组成格式以及预设敏感数据长度进行比较;

若某一字段的数据组成格式和数据长度分别与预设敏感数据组成格式和预设敏感数据长度相同,则确定该字段为需要进行脱敏处理的敏感数据,提取所述敏感数据。

进一步地,所述散列运算所采用的算法为SM3、SHA256或MD5。

根据本申请实施例的另一个方面,提供一种数据脱敏装置,包括:

获取模块,用于获取需要进行脱敏处理的敏感数据;

第一散列模块,用于对所述敏感数据进行散列运算,得到散列字符串;

类型确定模块,用于确定所述散列字符串中各字符的类型;

位置确定模块,用于根据所述各字符的类型的排序特征,基于预设位置选择规则,确定在所述散列字符串中加入随机盐值的位置;

随机盐值加入模块,用于根据所确定的位置,在所述散列字符串中加入随机盐值,得到加入随机盐值后的字符串;

第二散列模块,用于对所述加入随机盐值后的字符串进行散列运算,得到脱敏后的数据。

进一步地,所述数据脱敏装置还包括:

检测模块,用于检测所述脱敏后的数据的存储位置与所述敏感数据的存储位置是为同一存储位置;

存储模块,用于若是,则删除所述敏感数据,并将所述脱敏后的数据存储到原用于存储所述敏感数据的存储位置。

根据本申请实施例的另一个方面,提供一种电子设备,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述程序,以实现上述的数据脱敏方法。

根据本申请实施例的另一个方面,提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行,以实现上述的数据脱敏方法。

本申请实施例的其中一个方面提供的技术方案可以包括以下有益效果:

本申请实施例提供的数据脱敏方法,对敏感数据进行散列运算得到散列字符串,在散列字符串中加入随机盐值,对加入随机盐值后的字符串进行散列运算,得到脱敏后的数据,大大增加了将脱敏后的数据还原为脱敏前的数据的难度,因此安全性更高,大大降低了敏感数据泄露的风险,满足敏感数据的安全性保障要求。

本申请的其他特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者,部分特征和优点可以从说明书中推知或毫无疑义地确定,或者通过实施本申请实施例了解。本申请的目的和其他优点可通过在所写的说明书、权利要求书、以及附图中所特别指出的结构来实现和获得。

附图说明

为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请中记载的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1示出了本申请的一个实施方式的数据脱敏方法流程图;

图2示出了图1所示实施例中步骤S10的一个实施方式的步骤流程图;

图3示出了图1所示实施例中步骤S10的另一实施方式的步骤流程图;

图4示出了本申请的另一实施方式的数据脱敏方法流程图;

图5示出了本申请的一个实施方式的数据脱敏装置结构框图;

图6示出了本申请的另一实施方式的数据脱敏装置结构框图;

图7示出了图5所示实施例的获取模块的结构框图;

图8示出了本申请的一个实施例的电子设备的结构框图。

具体实施方式

为了使本申请的目的、技术方案及优点更加清楚明白,下面结合附图和具体实施例对本申请做进一步说明。应当理解,此处所描述的具体实施例仅用以解释本申请,并不用于限定本申请。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。

本技术领域技术人员可以理解,除非另外定义,这里使用的所有术语(包括技术术语和科学术语),具有与本申请所属领域中的普通技术人员的一般理解相同的意义。还应该理解的是,诸如通用字典中定义的那些术语,应该被理解为具有与现有技术的上下文中的意义一致的意义,并且除非像这里一样被特定定义,否则不会用理想化或过于正式的含义来解释。

如图1所示,本申请的一个实施例提供了一种数据脱敏方法,包括以下步骤:

S10、获取需要进行脱敏处理的敏感数据。

具体地,根据预设敏感数据字段名集合,判定数据是否为敏感数据。

在某些实施方式中,如图2所示,步骤S10包括:

S101、获取待处理数据的字段名。

预设敏感数据字段名集合是预先设定的对应于敏感数据的所有字段名所组成的集合,例如预先将身份证号码、手机号码、银行卡号等数据的字段名均设定为敏感数据的字段名,即凡是敏感数据的字段名所对应的数据均确定为敏感数据,则身份证号码、手机号码、银行卡号等数据的字段名即构成预设敏感数据字段名集合。

例如,手机号的字段名可以设定为phone_number,则凡是以phone_number为字段名的数据均代表手机号,预先设定对应于字段名phone_number的数据均属于敏感数据,则所有的手机号均被设定为敏感数据。

身份证号码的字段名可以设定为ID_number,则凡是以ID_number为字段名的数据均代表身份证号码,预先设定对应于字段名ID_number的数据均属于敏感数据,则所有的身份证号码均被设定为敏感数据。

银行卡号的字段名可以设定为bankcard_number,则凡是以bankcard_number为字段名的数据均代表银行卡号,预先设定对应于字段名bankcard_number的数据均属于敏感数据,则所有的银行卡号均被设定为敏感数据。

S102、将该字段名与预设敏感数据字段名集合中所包含的字段名进行对比,判断该待处理数据的字段名是否属于预设敏感数据字段名集合。

例如,预设敏感数据字段名集合中所包含的字段名包括手机号、身份证号码和银行卡号。

S103、若该待处理数据的字段名属于预设敏感数据字段名集合,则确定该数据为敏感数据,提取所述敏感数据,否则确定该数据不是敏感数据。

例如,若待处理数据的字段名为手机号、身份证号码或银行卡号的字段名,则确定该待处理数据为敏感数据。

如图3所示,在某些实施方式中,步骤S10包括:

S101’、遍历待处理数据中的每个字段,确定每个字段的数据组成格式以及数据长度。

不同类型的字段的数据长度不同,例如身份证号码为18位数字组成,构成身份证号码的字符除了十个阿拉伯数字之外还包括字母X,手机号码为11位数字构成。

S102’、将所述每个字段的数据组成格式以及数据长度分别与预设敏感数据组成格式以及预设敏感数据长度进行比较。

S103’、若某一字段的数据组成格式和数据长度分别与预设敏感数据组成格式和预设敏感数据长度相同,则确定该字段为需要进行脱敏处理的敏感数据,提取所述敏感数据。

例如,若一字段包括18个字符,该18个字符中包括阿拉伯数字以及字母X,则可以确定该字段为身份证号码。

S20、对该敏感数据进行散列运算,得到散列字符串。

散列运算所采用的算法可以为SM3、SHA256或MD5。

以MD5算法为例,MD5码以512位分组来处理输入的数据,且每一分组又被划分为16个32位子分组,经过一系列处理后,输出由四个32位分组组成的数据,将这四个32位分组级联后生成一个128位散列值。

首先对敏感数据进行补充,按位(bit)进行补充,确保最终的位数对512求模结果为448。即通过数据补位操作后,其位数长度只差64位就是512的整数倍。

补位的实现过程包括:在敏感数据后补一个1比特,再补若干0比特,直至整个数据的位数对512求模的结果正好为448。即至少补1位,而最多可以补512位。

在完成补位后,将一个表示数据原始长度的64比特数(这是对原始数据没有补位前长度的描述,用二进制来表示)补在最后。当完成补位及补充数据的描述后,得到的结果数据长度正好是512的整数倍。也就是说长度正好是16个(32比特)字的整数倍。

MD5运算要用到一个128位的MD5缓存器,用来保存中间变量和最终结果。该缓存器为4个32位的寄存器A、B、C、D构成,寄存器A、B、C、D分别初始化为:

A:01 23 45 67,B:89ab cd ef,C:fe dc ba 98,D:76 54 32 10。

处理数据段,首先定义4个非线性函数F、G、H、I,对输入的报文运算以512位数据段为单位进行处理。对每个数据段都要进行4轮的逻辑处理,在4轮中分别使用4个不同的函数F、G、H、I。每一轮以ABCD和当前的512位的块为输入,处理后送入ABCD(128位)。

处理完成的数据以A,B,C,D的形式输出。也就是开始于A的低位在前的顺序字节,结束于D的高位在前的顺序字节。

S30、确定所述散列字符串中各字符的类型。

例如,确定散列字符串中各字符的字符类型中包括哪些类型。字符类型包括数字、ASCII字符以及非ASCII字符等。

S40、根据所述各字符的类型的排序特征,基于预设位置选择规则,确定在所述散列字符串中加入随机盐值的位置。

预设位置选择规则为散列字符串中字符类型的排列方式与随机盐值加入位置之间的对应关系。例如,预设位置选择规则可以为,若散列字符串中存在六个连续的数字字符,则将随机盐值加入散列字符串中第一个字符和第二个字符之间的位置,否则将随机盐值加到整个散列字符串之前。

又例如,预设位置选择规则可以为,若散列字符串中存在三个连续的字母字符,则将随机盐值加到整个散列字符串之后的位置,否则将随机盐值加入散列字符串的第一个字符和第二个字符之间。

具体的预设位置选择规则可以根据实际需要进行设定。

S50、根据所确定的位置,在所述散列字符串中加入随机盐值,得到加入随机盐值后的字符串。

随机盐值是通过随机盐算法生成的一组字符串,可以包括随机的大小写字母、数字和字符,随机盐值的位数可以预先设定。

在散列字符串中加入随机盐值,包括:将通过随机盐算法生成的随机盐值加入散列字符串中的预设位置。

预设位置例如可以为散列字符串中第一个字符与第二个字符之间,或者是位于整个散列字符串之前的位置,或者是位于整个散列字符串之后的位置,或者是其他字符之间的位置,具体可以根据实际需要进行设定。

在字符串中加入随机盐值,使得解析获取原散列字符串的概率大大降低,从而提高了安全性。

S60、对所述加入随机盐值后的字符串进行散列运算,得到脱敏后的数据。

散列运算所采用的算法可以为SM3、SHA256或MD5。

所得到的脱敏后的数据是不可逆的,即无法将脱敏后的字符串还原为脱敏前的数据,因此安全性更高,满足数据的安全性保障要求。

如图4所示,在某些实施方式中,该数据脱敏方法还包括:

S70、检测所述脱敏后的数据的存储位置与所述敏感数据的存储位置是为同一存储位置。

脱敏后的数据的存储位置与敏感数据的存储位置是根据实际需要设定的,对于不同类型的敏感数据,设定方式不同。例如,在实际应用场景中,手机号码的脱敏后的存储位置可以设定为与原存储位置相同,身份证号的脱敏后的存储位置可以设定为与原存储位置不同。

S80、若是,则删除所述敏感数据,并将所述脱敏后的数据存储到原用于存储所述敏感数据的存储位置。

即如果脱敏后的数据的存储位置与敏感数据的存储位置是为同一存储位置,则直接利用脱敏后的数据覆盖原来的敏感数据。

S90、若否,则将所述脱敏后的数据的存储位置与原用于存储所述敏感数据的存储位置进行关联,以便于后续能够查找到与敏感数据相对应的脱敏后的数据。

在脱敏后的数据的存储位置与敏感数据的存储位置不是同一存储位置的情况下,在二者之间建立关联关系,若后续需要根据脱敏后的数据查找原来的敏感数据,则可以根据该关联关系进行存储位置查找。

本申请实施例提供的数据脱敏方法,对敏感数据进行散列运算得到散列字符串,在散列字符串中加入随机盐值,对加入随机盐值后的字符串进行散列运算,得到脱敏后的数据,大大增加了将脱敏后的数据还原为脱敏前的数据的难度,因此安全性更高,大大降低了敏感数据泄露的风险,满足敏感数据的安全性保障要求。

如图5所示,本申请的另一个实施例提供了一种数据脱敏装置,包括:

获取模块10,用于获取需要进行脱敏处理的敏感数据;

第一散列模块20,用于对所述敏感数据进行散列运算,得到散列字符串;

类型确定模块30,用于确定所述散列字符串中各字符的类型;

位置确定模块40,用于根据所述各字符的类型的排序特征,基于预设位置选择规则,确定在所述散列字符串中加入随机盐值的位置;

随机盐值加入模块50,用于根据所确定的位置,在所述散列字符串中加入随机盐值,得到加入随机盐值后的字符串;

第二散列模块60,用于对所述加入随机盐值后的字符串进行散列运算,得到脱敏后的数据。

如图6所示,在某些实施方式中,所述数据脱敏装置还包括:

检测模块70,用于检测所述脱敏后的数据的存储位置与所述敏感数据的存储位置是为同一存储位置;

存储模块80,用于若是,则删除所述敏感数据,并将所述脱敏后的数据存储到原用于存储所述敏感数据的存储位置;

关联模块90,用于若否,则将所述脱敏后的数据的存储位置与原用于存储所述敏感数据的存储位置进行关联。

如图7所示,在某些实施方式中,获取模块10,包括:

获取单元101,用于获取待处理数据的字段名;

对比判断单元102,用于将所述字段名与预设敏感数据字段名集合中所包含的字段名进行对比,判断所述待判定数据的字段名是否属于所述预设敏感数据字段名集合;

确定单元103,用于若属于,则确定所述待判定数据为敏感数据,提取所述敏感数据。

在某些实施方式中,获取模块10,包括:

遍历单元,用于遍历待处理数据中的每个字段,确定每个字段的数据组成格式以及数据长度;

比较单元,用于将所述每个字段的数据组成格式以及数据长度分别与预设敏感数据组成格式以及预设敏感数据长度进行比较;

确定单元,用于若某一字段的数据组成格式和数据长度分别与预设敏感数据组成格式和预设敏感数据长度相同,则确定该字段为需要进行脱敏处理的敏感数据,提取所述敏感数据。

本申请的另一个实施例提供了一种电子设备,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述程序,以实现上述任一实施方式的数据脱敏方法。如图8所示,在一实施方式中,所述电子设备100可以包括:处理器1000,存储器1001,总线1002和通信接口1003,所述处理器1000、通信接口1003和存储器1001通过总线1002连接;所述存储器1001中存储有可在所述处理器1000上运行的计算机程序,所述处理器1000运行所述计算机程序时执行本申请前述任一实施方式所提供的方法。

其中,存储器1001可能包含高速随机存取存储器(RAM:Random Access Memory),也可能还可以包括非不稳定的存储器(non-volatile memory),例如至少一个磁盘存储器。通过至少一个通信接口1003(可以是有线或者无线)实现该系统网元与至少一个其他网元之间的通信连接,可以使用互联网、广域网、本地网、城域网等。

总线1002可以是ISA总线、PCI总线或EISA总线等。所述总线可以分为地址总线、数据总线、控制总线等。其中,存储器1001用于存储程序,所述处理器1000在接收到执行指令后,执行所述程序,前述本申请实施例任一实施方式揭示的所述方法可以应用于处理器1000中,或者由处理器1000实现。

处理器1000可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器1000中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器1000可以是通用处理器,可以包括中央处理器(Central Processing Unit,简称CPU)、网络处理器(Network Processor,简称NP)等;还可以是数字信号处理器(DSP)、专用集成电路(ASIC)、现成可编程门阵列(FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本申请实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本申请实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器1001,处理器1000读取存储器1001中的信息,结合其硬件完成上述方法的步骤。

本申请实施例提供的电子设备与本申请实施例提供的方法出于相同的发明构思,具有与其采用、运行或实现的方法相同的有益效果。

本申请的另一个实施例提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行,以实现上述任一实施方式的数据脱敏方法。

需要说明的是:

术语“模块”并非意图受限于特定物理形式。取决于具体应用,模块可以实现为硬件、固件、软件和/或其组合。此外,不同的模块可以共享公共组件或甚至由相同组件实现。不同模块之间可以存在或不存在清楚的界限。

在此提供的算法和显示不与任何特定计算机、虚拟装置或者其它设备固有相关。各种通用装置也可以与基于在此的示教一起使用。根据上面的描述,构造这类装置所要求的结构是显而易见的。此外,本申请也不针对任何特定编程语言。应当明白,可以利用各种编程语言实现在此描述的本申请的内容,并且上面对特定语言所做的描述是为了披露本申请的最佳实施方式。

类似地,应当理解,为了精简本公开并帮助理解各个发明方面中的一个或多个,在上面对本申请的示例性实施例的描述中,本申请的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。然而,并不应将该公开的方法解释成反映如下意图:即所要求保护的本申请要求比在每个权利要求中所明确记载的特征更多的特征。更确切地说,如下面的权利要求书所反映的那样,发明方面在于少于前面公开的单个实施例的所有特征。因此,遵循具体实施方式的权利要求书由此明确地并入该具体实施方式,其中每个权利要求本身都作为本申请的单独实施例。

应该理解的是,虽然附图的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,其可以以其他的顺序执行。而且,附图的流程图中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,其执行顺序也不必然是依次进行,而是可以与其他步骤或者其他步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。

以上所述实施例仅表达了本申请的实施方式,其描述较为具体和详细,但并不能因此而理解为对本申请专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请的保护范围应以所附权利要求为准。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号