CN110414261A - 一种数据脱敏方法、装置、设备及可读存储介质 - Google Patents

一种数据脱敏方法、装置、设备及可读存储介质 Download PDF

Info

Publication number
CN110414261A
CN110414261A CN201910562864.5A CN201910562864A CN110414261A CN 110414261 A CN110414261 A CN 110414261A CN 201910562864 A CN201910562864 A CN 201910562864A CN 110414261 A CN110414261 A CN 110414261A
Authority
CN
China
Prior art keywords
desensitization
data
code
abstract syntax
syntax tree
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.)
Granted
Application number
CN201910562864.5A
Other languages
English (en)
Other versions
CN110414261B (zh
Inventor
程洋
杨自强
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Sankuai Online Technology Co Ltd
Original Assignee
Beijing Sankuai Online Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Beijing Sankuai Online Technology Co Ltd filed Critical Beijing Sankuai Online Technology Co Ltd
Priority to CN201910562864.5A priority Critical patent/CN110414261B/zh
Publication of CN110414261A publication Critical patent/CN110414261A/zh
Application granted granted Critical
Publication of CN110414261B publication Critical patent/CN110414261B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6218Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
    • G06F21/6245Protecting personal data, e.g. for financial or medical purposes

Landscapes

  • Engineering & Computer Science (AREA)
  • Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • General Health & Medical Sciences (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Databases & Information Systems (AREA)
  • Computer Security & Cryptography (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Medical Informatics (AREA)
  • Stored Programmes (AREA)
  • Devices For Executing Special Programs (AREA)

Abstract

本发明提供了一种数据脱敏方法、装置、设备及可读存储介质,所述方法包括:针对待脱敏源代码添加脱敏注解,得到脱敏注解代码,所述待脱敏源代码包括读取敏感数据的代码;将所述脱敏注解代码解析为抽象语法树;在所述抽象语法树中添加脱敏规则;编译所述脱敏规则,将所述敏感数据转换为非敏感数据。解决了现有技术中无法实现全场景、简单、高效的数据脱敏造成的程序开发成本高且效率低的问题。

Description

一种数据脱敏方法、装置、设备及可读存储介质
技术领域
本发明涉及计算机通信领域,特别是涉及一种数据脱敏方法、一种数据脱敏装置、设备及可读存储介质。
背景技术
大数据平台通过将所有数据整合起来,充分分析与挖掘数据的内在价值,为业务部门提供数据平台、数据产品与数据服务。大数据平台接入的数据中可能包括很多用户的隐私和敏感信息,如用户在酒店的入住纪录、用户支付信息等,这些数据存在可能泄漏的风险。数据脱敏通过对数据中某些敏感信息通过脱敏规则进行数据的变形,实现敏感隐私数据的可靠保护。
现有的一种实现数据脱敏的方法是在java服务的接口层,对接口方法进行面向对象拦截,在拦截器中判断接口方法的返回对象是否加了相关注解,如果有注解的话,便执行对应脱敏处理逻辑,以完成接口返回值的脱敏,此方案适用的脱敏场景有限,例如很难做到对java日志的脱敏。同时,面向对象拦截对java程序的运行时性能也有一定的损耗。
现有的另一种实现数据脱敏的方法是利用java的反射机制,检测java对象中是否声明了相关的脱敏注解。如果匹配到了注解,则通过java的反射api对其值进行修改,完成数据的脱敏。由于是提供一个静态的反射工具方法,在编码时,手动传入需要检测的java对象,所以此方案需要人工判断什么时候,对哪些数据使用工具方法做脱敏加工,容易遗漏且效率低。
现有的还一种实现数据脱敏的方法是数据脱敏方法是提供一个静态工具类,实现对数据的加密和解密。这需要开发人员自行判断什么时候使用工具类,对哪些数据做加密和解密,以及在什么地发做加密或解密。这种依赖人为判断的方式,容易遗漏且效率低。
所以,如何实现全场景、简单、高效的脱敏方案是需要解决的技术问题。
发明内容
鉴于上述问题,提出了本发明实施例以便提供一种克服上述问题或者至少部分地解决上述问题的一种数据脱敏方法和相应的一种数据脱敏装置。
根据本发明的第一方面,本发明实施例公开了一种数据脱敏方法,具体包括:
针对待脱敏源代码添加脱敏注解,得到脱敏注解代码,所述待脱敏源代码包括读取敏感数据的代码;
将所述脱敏注解代码解析为抽象语法树;
在所述抽象语法树中添加脱敏规则;
编译所述脱敏规则,将所述敏感数据转换为非敏感数据。
根据本发明的第二方面,本发明实施例公开了一种数据脱敏装置,具体包括:
脱敏注解代码得到模块,用于针对待脱敏源代码添加脱敏注解,得到脱敏注解代码,所述待脱敏源代码包括读取敏感数据的代码;
解析模块,用于将所述脱敏注解代码解析为抽象语法树;
脱敏规则添加模块,用于在所述抽象语法树中添加脱敏规则;
脱敏模块,用于编译所述脱敏规则,将所述敏感数据转换为非敏感数据。
根据本发明的第三方面,提供了一种设备,包括:处理器、存储器以及存储在所述存储器上并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现如前述的数据脱敏方法。
根据本发明的第四方面,提供了一种可读存储介质,当所述存储介质中的指令由电子设备的处理器执行时,使得电子设备能够实现前述的数据脱敏方法。
本发明实施例包括以下优点,通过针对待脱敏源代码添加脱敏注解,得到脱敏注解代码,所述待脱敏源代码包括读取敏感数据的代码;将所述脱敏注解代码解析为抽象语法树;在所述抽象语法树中添加脱敏规则;编译所述脱敏规则,将所述敏感数据转换为非敏感数据,做到通过注解标识需要脱敏的字段,使用增强代码实现数据脱敏,有效节省开发成本,提升开发效率的有益效果。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对本发明实施例的描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1是本发明的一种数据脱敏方法实施例的步骤流程图;
图1A是本发明中涉及到的现有技术脱敏场景示意图;
图1B是本发明的脱敏问题解决思路示意图;
图2是本发明的一种数据脱敏方法实施例的步骤流程图;
图2A是本发明的数据脱敏方法实施例逻辑示意图;
图2B是本发明的数据脱敏方法实施例中的代码展示实例图;
图2C是本发明的数据脱敏方法实施例中的代码展示实例图;
图2D是本发明的数据脱敏方法实施例中的代码展示实例图;
图2E是本发明的数据脱敏方法实施例中的代码展示实例图;
图3是本发明的一种数据脱敏装置实施例的结构框图;
图4是本发明的一种数据脱敏装置实施例的结构框图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
名词解释:
AST抽象语法树:一款编译器的编译流程中需要关注词法分析和语法分析,其中,第一步:词法分析,也叫扫描scanner,它读取代码,然后把代码按照预定的规则合并成一个个的标识tokens。同时,它会移除空白符、注释等,最后,整个代码将被分割进一个tokens列表(或者说一维数组)。当词法分析源代码的时候,它会一个一个字母地读取代码,所以很形象地称之为扫描scans。当它遇到空格、操作符,或者特殊符号的时候,它会认为一个话已经完成了。第二步:语法分析,也称解析器,它会将词法分析出来的一维数组转换成树形的形式,同时,验证语法。语法如果有错的话,抛出语法错误。当生成树的时候,解析器会删除一些没必要的标识tokens(比如:不完整的括号),因此AST不是100%与源码匹配的。
Java注解:为一种描述java数据的数据,注解就是源代码的元数据。
JSR 269Pluggable Annotation Processing API:插入式注解接口,提供一套标准API来处理注解,实际上JSR 269不仅仅用来处理注解,更强大的功能是它建立了Java语言本身的一个模型,它把method,package,constructor,type,variable,enum,注解等Java语言元素映射为Types和Elements,从而将Java语言的语义映射成为对象,所以可以利用JSR 269提供的API来构建一个功能丰富的元编程(metaprogramming)环境。JSR 269用注解处理器在编译期间而不是运行期间处理注解,注解处理器相当于编译器的一个插件,所以称为插入式注解处理。如果注解处理器处理注解时(执行处理方法)产生了新的Java代码,编译器会再调用一次注解处理器,如果第二次处理还有新代码产生,就会接着调用注解处理器,直到没有新代码产生为止。每执行一次process()方法被称为一个"round",这样整个注解processing过程可以看作是一个round的序列,JSR 269主要被设计成为针对Tools或者容器的API。
实施例一
参照图1,示出了本发明的一种数据脱敏方法实施例的步骤流程图,具体可以包括如下步骤:
步骤101,针对待脱敏源代码添加脱敏注解,得到脱敏注解代码,所述待脱敏源代码包括读取敏感数据的代码;
如图1A所示,一般的java后台服务程序,都会做分层,加上不同的业务线,导致这些点的数量非常多。在针对现有技术中存在的在明文数据创建之后,再采用各种手段对其加工,实现敏感数据的脱敏,导致需要开发者需要关注创建之后的各种应用场景和会话场景进行敏感数据的逐一处理,即如图1B左侧所示,小鸡诞生后,没有任何保护,在这条路上每个可能危险的点都需要关注,给小鸡提供防护。这是一个碎片化的实现方式。
本发明实施例中,如图1B右侧所示,如果小鸡诞生时,就已经具备防护了,那么在这条路上都会是安全的。也就实现了全场景覆盖,即利用代码增强的方式,即通过针对待脱敏源代码添加脱敏注解,得到注解后的代码为脱敏注解代码,其中,待脱敏源代码可以为读取敏感数据的代码,即明确的定位可能包含待脱敏数据的源代码,并直接进行脱敏规则的插入。
步骤102,将所述脱敏注解代码解析为抽象语法树;
本发明实施例中,在对代码进行解析的过程中,如对AST抽象语法树的名词解释中给出的描述,主要分为两个步骤,
第一步:词法分析,也叫扫描scanner,它读取代码,然后把代码按照预定的规则合并成一个个的标识tokens。同时,它会移除空白符、注释等,最后,整个代码将被分割进一个tokens列表(或者说一维数组)。
第二步:语法分析,也称解析器,它会将词法分析出来的一维数组转换成树形的形式,同时,验证语法。
其中,经过上述两个步骤对源代码进行解析后,生成关于源代码的抽象语法树,在抽象语法树中包含预定的规则合并成一个个的标识tokens,即可在抽象语法树中识别出包含脱敏注解的tokens。
步骤103,在所述抽象语法树中添加脱敏规则;
本发明实施例中,针对上述得到的包含脱敏注解的tokens中,添加脱敏规则,即利用上述描述的JSR 269,在需要将敏感数据进行处理的tokens进行修改,添加对应的脱敏规则。
步骤104,编译所述脱敏规则,将所述敏感数据转换为非敏感数据。
在本发明实施例中,根据编译脱敏规则中的定义的具体方法,将敏感数据转换为非敏感数据。例如,将敏感数据隐藏或替换成指定符号等。
在本发明实施例中,针对待脱敏源代码添加脱敏注解,得到脱敏注解代码,所述待脱敏源代码包括读取敏感数据的代码;将所述脱敏注解代码解析为抽象语法树;在所述抽象语法树中添加脱敏规则;编译所述脱敏规则,将所述敏感数据转换为非敏感数据。上述实施例具有通过注解、编译和代码增强实现数据脱敏,有效的节省了开发成本,提升了开发效率。
实施例二
参照图2,示出了本发明的一种数据脱敏方法实施例的步骤流程图,具体可以包括如下步骤:
步骤201,获取待脱敏源代码中敏感数据的敏感位置;
本发明实施例中,对于本方案的数据脱敏,是在注解处理器中完成的,所有首先需要通过脱敏注解找到标识了脱敏注解的字段,即敏感数据的敏感位置。
步骤202,在所述敏感位置中添加脱敏注解,得到脱敏注解代码;所述待脱敏源代码包括读取敏感数据的代码;
具体地,通过代码增强方式实现全场景覆盖,代码增强是指对常规的java代码植入脱敏能力(添加脱敏注解),这是通过编译期修改AST(抽象语法树)的技术来完成。依据的技术基础是JSR269Pluggable Annotation Processing API。通过编译期做代码增强的优势是,所增强的代码,在编码时是可见的,例如,工程师为某个java类C植入了一个方法M,在编程时,自动植入的方法M即可以直接使用,这为编程提供了足够的灵活性。
步骤203,通过预设语法解析器将所述脱敏注解代码解析为抽象语法树,所述抽象语法树中包括脱敏注解节点;
其中,工程师编写的java代码,要通过编译,把java代码转成抽象语法树ast,再把ast转换为字节码后,才能够在机器上运行。
步骤204,利用注解处理接口,访问所述抽象语法树中的所述脱敏注解节点;
具体地,如图2A所示,当用javac(标准java编译器)对java代码执行编译时,会根据“注解”扫描当前路径下的Annotation Processing API接口的实现,若发现存在处理该“注解”的实现,则会执行该实现。这时,由于该接口暴露了ast,就可以通过访问ast来达到植入java代码的目的。
步骤205,在所述脱敏注解节点中,利用赋值setter方法,添加脱敏规则或解密规则,得到脱敏抽象语法树;
具体地,在ast上增加或修改当前java类的setter方法,通过在方法中加入新的代码,对原字段值进行加密。
进一步地,在ast上增加一些辅助方法,这些辅助方法用来转换明文或密文数据,在这些方法内部,通过加入新的代码,实现对密文解密,或对明文加密。这些辅助方法的目的是,为需要明文数据时提供方便,工程师只需要调用辅助方法即可拿到明文数据。
例如图2B所示,假设需要为用户提供手机号相关的服务,对于java程序来说,可以创建一个User类,里面有个cellphone字段。
进一步地,如图2C所示,要对手机号脱敏,可以在cellphone字段加个注解@Desensitize。这时,如果对User类进行编译,按上述实现原理,User类会被增强为如图2D方框中所示的代码字段,增强后的结果,是在setter方法中实现了手机号的脱敏,同时植入了一些辅助方法。例如planeCellphone会返回手机号的明文值。
如此,最后的数据脱敏结果如图2E所示,在创建User类时,对手机号赋值时,就保障了脱敏。
其中,由于在数据创建时(调用setter方法时)完成了脱敏,在获取数据时,自然也就得到了脱敏后的数据。在不通的数据场景下,产生的效果举例:
1,数据持久化到数据库,持久层的java对象在赋值时就完成了脱敏,导致sql的写操作会写入脱敏值。
2,数据序列化,序列化时调用getter方法,导致序列化后的结果也是脱敏值。
3,记录日志,如log.info(obj),会调用obj的toString方法,由于字段在setter时完成了脱敏,因此toString返回的也是脱敏值。
可以理解地,以上列举的几个场景,都是由增强的代码自动完成的,无需人工干预。因此也就提高了开发的效率。
优选地,所述脱敏规则,包括:
从所述敏感数据中选出一个或多个字符作为加密区;
通过加密算法对所述加密区中的数据进行运算,得到加密数据;
将所述加密区中的数据替换为所述加密数据。
优选地,所述解密规则,包括:
通过解密算法对加密区中所述加密数据中进行运算,得到解密数据;
将所述加密区中的加密数据替换为所述解密数据。
步骤206,编译所述脱敏规则,将所述敏感数据转换为非敏感数据。
此步骤与步骤104相同,在此不再详述。
在本发明实施例中,通过获取待脱敏源代码中敏感数据的敏感位置;在所述敏感位置中添加脱敏注解,得到脱敏注解代码,所述待脱敏源代码包括读取敏感数据的代码;通过预设语法解析器将所述脱敏注解代码解析为抽象语法树,所述抽象语法树中包括脱敏注解节点;利用注解处理接口,访问所述抽象语法树中的所述脱敏注解节点;在所述脱敏注解节点中,利用赋值setter方法,添加脱敏规则或解密规则;编译所述脱敏规则,将所述敏感数据转换为非敏感数据。实现了编译期完成代码增强,工程师不需关心不通使用场景下的数据脱敏,极大提升开发效率,和程序的运行效率。
需要说明的是,对于方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明实施例并不受所描述的动作顺序的限制,因为依据本发明实施例,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作并不一定是本发明实施例所必须的。
实施例三
参照图3,示出了本发明的一种数据脱敏装置实施例的结构框图,具体可以包括如下模块:
脱敏注解代码得到模块301,用于针对待脱敏源代码添加脱敏注解,得到脱敏注解代码,所述待脱敏源代码包括读取敏感数据的代码;
解析模块302,用于将所述脱敏注解代码解析为抽象语法树;
脱敏规则添加模块303,用于在所述抽象语法树中添加脱敏规则;
脱敏模块304,用于编译所述脱敏规则,将所述敏感数据转换为非敏感数据。
在本发明实施例中,通过脱敏注解代码得到模块,用于针对待脱敏源代码添加脱敏注解,得到脱敏注解代码,所述待脱敏源代码包括读取敏感数据的代码;解析模块,用于将所述脱敏注解代码解析为抽象语法树;脱敏规则添加模块,用于在所述抽象语法树中添加脱敏规则;脱敏模块,用于编译所述脱敏规则,将所述敏感数据转换为非敏感数据。上述实施例具有通过注解、编译和代码增强实现数据脱敏,有效的节省了开发成本,提升了开发效率。
实施例四
参照图4,示出了本发明的一种数据脱敏装置实施例的结构框图,具体可以包括如下模块:
脱敏注解代码得到模块401,用于针对待脱敏源代码添加脱敏注解,得到脱敏注解代码,所述待脱敏源代码包括读取敏感数据的代码;
优选地,所述脱敏注解代码得到模块401,进一步包括:
敏感位置获取子模块4011,用于获取待脱敏源代码中敏感数据的敏感位置;
脱敏注解代码得到子模块4012,用于在所述敏感位置中添加脱敏注解,得到脱敏注解代码。
解析模块402,用于将所述脱敏注解代码解析为抽象语法树;
优选地,所述解析模块402,进一步包括:
解析子模块4021,用于通过预设语法解析器将所述脱敏注解代码解析为抽象语法树,所述抽象语法树中包括脱敏注解节点。
脱敏规则添加模块403,用于在所述抽象语法树中添加脱敏规则;
优选地,所述脱敏规则添加模块403,进一步包括:
脱敏注解节点访问子模块4031,用于利用注解处理接口,访问所述抽象语法树中的所述脱敏注解节点;
脱敏规则添加子模块4032,用于在所述脱敏注解节点中,利用赋值setter方法,添加脱敏规则或解密规则。
优选地,所述脱敏规则,包括:
从所述敏感数据中选出一个或多个字符作为加密区;
通过加密算法对所述加密区中的数据进行运算,得到加密数据;
将所述加密区中的数据替换为所述加密数据。
优选地,所述解密规则,包括:
通过解密算法对加密区中所述加密数据中进行运算,得到解密数据;
将所述加密区中的加密数据替换为所述解密数据。
脱敏模块404,用于编译所述脱敏规则,将所述敏感数据转换为非敏感数据。
对于装置实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
本发明实施例还提供一种设备,包括:处理器、存储器以及存储在所述存储器上并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现如上述的一个或多个所述的数据脱敏方法。
本发明实施例还提供一种可读存储介质,当所述存储介质中的指令由电子设备的处理器执行时,使得电子设备能够执行如所述的数据脱敏方法。
综上所述,在本发明实施例中,通过敏感位置获取子模块,用于获取待脱敏源代码中敏感数据的敏感位置;脱敏注解代码得到子模块,用于在所述敏感位置中添加脱敏注解,得到脱敏注解代码。解析子模块,用于通过预设语法解析器将所述脱敏注解代码解析为抽象语法树,所述抽象语法树中包括脱敏注解节点。脱敏注解节点访问子模块,用于利用注解处理接口,访问所述抽象语法树中的所述脱敏注解节点;脱敏规则添加子模块,用于在所述脱敏注解节点中,利用赋值setter方法,添加脱敏规则或解密规则。脱敏模块,用于编译所述脱敏规则,将所述敏感数据转换为非敏感数据。实现了编译期完成代码增强,工程师不需关心不通使用场景下的数据脱敏,极大提升开发效率,和程序的运行效率。其具有如下优点:
一.只需要通过注解标识一下需要脱敏的字段即可,剩下的事都由增强的代码完成。有效的节省了开发成本,提升了开发效率,解决了处处编写,处处维护的问题;
二.工程师不需关心不通使用场景下的数据脱敏,极大提升开发效率,解决了数据脱敏全场景覆盖的问题;
三.由于是编译期完成代码增强,对运行期零影响。保障了程序的更快运行,解决了脱敏对java程序运行时性能的影响。
本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。
本领域内的技术人员应明白,本发明实施例的实施例可提供为方法、装置、或计算机程序产品。因此,本发明实施例可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明实施例是参照根据本发明实施例的方法、终端设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理终端设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理终端设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理终端设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理终端设备上,使得在计算机或其他可编程终端设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程终端设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本发明实施例的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明实施例范围的所有变更和修改。
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者终端设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者终端设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者终端设备中还存在另外的相同要素。
以上对本发明所提供的一种数据脱敏方法和一种数据脱敏装置,进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。

Claims (9)

1.一种数据脱敏方法,其特征在于,包括:
针对待脱敏源代码添加脱敏注解,得到脱敏注解代码,所述待脱敏源代码包括读取敏感数据的代码;
将所述脱敏注解代码解析为抽象语法树;
在所述抽象语法树中添加脱敏规则;
编译所述脱敏规则,将所述敏感数据转换为非敏感数据。
2.根据权利要求1所述的方法,其特征在于,所述针对待脱敏源代码添加脱敏注解,得到脱敏注解代码,包括:
获取待脱敏源代码中敏感数据的敏感位置;
在所述敏感位置中添加脱敏注解,得到脱敏注解代码。
3.根据权利要求2所述的方法,其特征在于,所述将所述脱敏注解代码解析为抽象语法树,包括:
通过预设语法解析器将所述脱敏注解代码解析为抽象语法树,所述抽象语法树中包括脱敏注解节点。
4.根据权利要求3所述的方法,其特征在于,所述在所述抽象语法树中添加脱敏规则,包括:
利用注解处理接口,访问所述抽象语法树中的所述脱敏注解节点;
在所述脱敏注解节点中,利用赋值setter方法,添加脱敏规则或解密规则。
5.根据权利要求4所述的方法,其特征在于,所述脱敏规则,包括:
从所述敏感数据中选出一个或多个字符作为加密区;
通过加密算法对所述加密区中的数据进行运算,得到加密数据;
将所述加密区中的数据替换为所述加密数据。
6.根据权利要求5所述的方法,其特征在于,所述解密规则,包括:
通过解密算法对加密区中所述加密数据中进行运算,得到解密数据;
将所述加密区中的加密数据替换为所述解密数据。
7.一种数据脱敏装置,其特征在于,包括:
脱敏注解代码得到模块,用于针对待脱敏源代码添加脱敏注解,得到脱敏注解代码,所述待脱敏源代码包括读取敏感数据的代码;
解析模块,用于将所述脱敏注解代码解析为抽象语法树;
脱敏规则添加模块,用于在所述抽象语法树中添加脱敏规则;
脱敏模块,用于编译所述脱敏规则,将所述敏感数据转换为非敏感数据。
8.一种设备,其特征在于,包括:
处理器、存储器以及存储在所述存储器上并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现如权利要求1-6之任一项所述的数据脱敏方法。
9.一种可读存储介质,其特征在于,当所述存储介质中的指令由电子设备的处理器执行时,使得电子设备能够实现如权利要求1-6之任一项所述的测数据脱敏方法。
CN201910562864.5A 2019-06-26 2019-06-26 一种数据脱敏方法、装置、设备及可读存储介质 Active CN110414261B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910562864.5A CN110414261B (zh) 2019-06-26 2019-06-26 一种数据脱敏方法、装置、设备及可读存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910562864.5A CN110414261B (zh) 2019-06-26 2019-06-26 一种数据脱敏方法、装置、设备及可读存储介质

Publications (2)

Publication Number Publication Date
CN110414261A true CN110414261A (zh) 2019-11-05
CN110414261B CN110414261B (zh) 2022-04-26

Family

ID=68358314

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910562864.5A Active CN110414261B (zh) 2019-06-26 2019-06-26 一种数据脱敏方法、装置、设备及可读存储介质

Country Status (1)

Country Link
CN (1) CN110414261B (zh)

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111309303A (zh) * 2020-02-07 2020-06-19 广州极尚网络技术有限公司 代码生成方法、装置、计算机设备和存储介质
CN111339559A (zh) * 2020-02-25 2020-06-26 北京同邦卓益科技有限公司 一种日志脱敏的数据处理方法及装置
CN111737746A (zh) * 2020-06-24 2020-10-02 四川长虹电器股份有限公司 一种基于java注解的动态配置数据脱敏的方法
CN111767300A (zh) * 2020-05-11 2020-10-13 全球能源互联网研究院有限公司 一种电力数据内外网穿透的动态脱敏方法及装置
CN112825096A (zh) * 2019-11-21 2021-05-21 北京沃东天骏信息技术有限公司 一种数据脱敏方法和装置
CN113407989A (zh) * 2021-05-26 2021-09-17 天九共享网络科技集团有限公司 数据脱敏的方法、装置、电子设备及存储介质
CN113806808A (zh) * 2021-09-24 2021-12-17 四川新网银行股份有限公司 一种分布式环境下无侵入的数据脱敏方法及系统
CN114417422A (zh) * 2022-01-26 2022-04-29 湖南快乐阳光互动娱乐传媒有限公司 一种代码仓库中敏感信息的自动保护方法和装置
WO2023015852A1 (zh) * 2021-08-11 2023-02-16 中国银联股份有限公司 一种应用日志的打码输出方法、装置及计算机可读存储介质
CN116595590A (zh) * 2023-07-19 2023-08-15 智慧眼科技股份有限公司 数据脱敏方法、装置、计算机设备及存储介质

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120030165A1 (en) * 2010-07-29 2012-02-02 Oracle International Corporation System and method for real-time transactional data obfuscation
CN106778288A (zh) * 2015-11-24 2017-05-31 阿里巴巴集团控股有限公司 一种数据脱敏的方法及系统
CN106971007A (zh) * 2017-04-28 2017-07-21 成都优易数据有限公司 一种利用数据结构控制的数据处理与数据分析框架
CN109426725A (zh) * 2017-08-22 2019-03-05 中兴通讯股份有限公司 数据脱敏方法、设备及计算机可读存储介质

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120030165A1 (en) * 2010-07-29 2012-02-02 Oracle International Corporation System and method for real-time transactional data obfuscation
CN106778288A (zh) * 2015-11-24 2017-05-31 阿里巴巴集团控股有限公司 一种数据脱敏的方法及系统
CN106971007A (zh) * 2017-04-28 2017-07-21 成都优易数据有限公司 一种利用数据结构控制的数据处理与数据分析框架
CN109426725A (zh) * 2017-08-22 2019-03-05 中兴通讯股份有限公司 数据脱敏方法、设备及计算机可读存储介质

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
咖啡拿铁: "教你用Java字节码做日志脱敏工具", 《HTTPS://MY.OSCHINA.NET/U/4072299/BLOG/4434145》 *
猿人谷: "Lombok介绍、使用方法和总结", 《HTTPS://WWW.CNBLOGS.COM/HEYONGGANG/P/8638374.HTML》 *

Cited By (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112825096A (zh) * 2019-11-21 2021-05-21 北京沃东天骏信息技术有限公司 一种数据脱敏方法和装置
CN111309303A (zh) * 2020-02-07 2020-06-19 广州极尚网络技术有限公司 代码生成方法、装置、计算机设备和存储介质
CN111339559A (zh) * 2020-02-25 2020-06-26 北京同邦卓益科技有限公司 一种日志脱敏的数据处理方法及装置
CN111767300A (zh) * 2020-05-11 2020-10-13 全球能源互联网研究院有限公司 一种电力数据内外网穿透的动态脱敏方法及装置
CN111737746A (zh) * 2020-06-24 2020-10-02 四川长虹电器股份有限公司 一种基于java注解的动态配置数据脱敏的方法
CN113407989A (zh) * 2021-05-26 2021-09-17 天九共享网络科技集团有限公司 数据脱敏的方法、装置、电子设备及存储介质
WO2023015852A1 (zh) * 2021-08-11 2023-02-16 中国银联股份有限公司 一种应用日志的打码输出方法、装置及计算机可读存储介质
CN113806808A (zh) * 2021-09-24 2021-12-17 四川新网银行股份有限公司 一种分布式环境下无侵入的数据脱敏方法及系统
CN113806808B (zh) * 2021-09-24 2023-06-23 四川新网银行股份有限公司 一种分布式环境下无侵入的数据脱敏方法及系统
CN114417422A (zh) * 2022-01-26 2022-04-29 湖南快乐阳光互动娱乐传媒有限公司 一种代码仓库中敏感信息的自动保护方法和装置
CN116595590A (zh) * 2023-07-19 2023-08-15 智慧眼科技股份有限公司 数据脱敏方法、装置、计算机设备及存储介质

Also Published As

Publication number Publication date
CN110414261B (zh) 2022-04-26

Similar Documents

Publication Publication Date Title
CN110414261A (zh) 一种数据脱敏方法、装置、设备及可读存储介质
CN108932406B (zh) 虚拟化软件保护方法和装置
KR101246623B1 (ko) 악성 애플리케이션 진단 장치 및 방법
CN103177210B (zh) 一种在Android中植入动态污点分析模块的方法
CN108733988A (zh) 安卓平台上可执行程序的保护方法
US8949790B2 (en) Debugging visual and embedded programs
JP6162733B2 (ja) コンピュータ環境における式の変換
KR20150122149A (ko) 컴파일러 기반 난독화 기법
CN109948308A (zh) 代码安全保护方法、装置、电子设备和计算机可读存储介质
CN109101237A (zh) 代码的加密编译方法及装置
CN108229112A (zh) 一种保护应用程序、应用程序的运行方法以及装置
CN103413076A (zh) 一种Android应用程序分块保护的方法
CN110059456B (zh) 代码保护方法、代码保护装置、存储介质与电子设备
CN108614702B (zh) 字节码优化方法及装置
CN112052006A (zh) 一种软件代码编译方法及系统
CN105303073A (zh) 软件代码保护方法
CN107871066B (zh) 基于安卓系统的代码编译方法及装置
CN103198240B (zh) 一种用于保护代码安全的方法和装置
CN104301139A (zh) 路由器适配方法、装置及终端设备
CN110069259A (zh) 基于idl文件的解析方法、装置、电子设备和存储介质
CN110825386A (zh) 代码的编译方法和装置、存储介质
CN112214736A (zh) 一种代码加密方法及相关组件
CN106933642B (zh) 应用程序的处理方法及处理装置
CN112230963B (zh) 安全漏洞修复的方法、装置、计算机设备和存储介质
CN111475152B (zh) 一种代码处理方法及装置

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant