用于日志加密的编译方法以及日志加密方法与流程

摘要: 本公开涉及计算机,具体涉及一种用于日志加密的编译方法、用于日志加密的编译装置、日志加密方法、日志加密装置、电子设备、计算机可读存储介质及计算机程序产品。背景技术...
用于日志加密的编译方法以及日志加密方法与流程

本公开涉及计算机,具体涉及一种用于日志加密的编译方法、用于日志加密的编译装置、日志加密方法、日志加密装置、电子设备、计算机可读存储介质及计算机程序产品。

背景技术:

1、日志技术是软件系统调试、问题排查、运行状态监控的重要手段,程序在运行过程中通过输出日志记录关键业务流程、变量状态以及异常信息,便于开发及运维人员定位系统故障。然而,日志中往往包含敏感信息,如用户身份信息、业务数据、系统配置等,这些信息如果以明文形式存储和传输,存在严重的安全隐患。

2、为了解决日志安全问题,现有技术普遍采用对日志内容进行加密的方式,现有的日志加密方案一般包括:应用层加密、日志库加密和系统调用拦截加密等。这些方案在每次日志输出时都需要对完整的日志内容进行加密计算,包括格式字符串、常数文本、分隔符等所有内容。在频繁日志输出的场景下(如高并发、实时系统、调试模式下的应用程序等),这种重复加密会带来巨大的cpu(central processing unit,中央处理器)开销。

技术实现思路

1、本公开实施例提出了一种用于日志加密的编译方法、用于日志加密的编译装置、日志加密方法、日志加密装置、电子设备、计算机可读存储介质及计算机程序产品。

2、第一方面,本公开实施例提出了一种用于日志加密的编译方法,包括:对源代码文件中的日志语句进行解析,确定日志语句中的常量部分;对常量部分进行加密生成加密常量数据块;将加密常量数据块嵌入可执行程序,其中,可执行程序由编译源代码文件得到,可执行程序用于在运行过程中,对日志语句中的变量部分进行加密生成加密变量数据块,并根据加密常量数据块和加密变量数据块生成加密日志数据。

3、第二方面,本公开实施例提供了一种日志加密方法,包括:在运行可执行程序的过程中,响应于执行到日志语句,对日志语句中的变量部分进行加密生成加密变量数据块,其中,可执行程序中预先设置有日志语句中的常量部分对应的加密常量数据块;根据加密常量数据块和加密变量数据块生成加密日志数据。

4、第三方面,本公开实施例提出了一种用于日志加密的编译装置,包括:代码解析模块,被配置为对源代码文件中的日志语句进行解析,确定日志语句中的常量部分;常量加密模块,被配置为对常量部分进行加密生成加密常量数据块;程序生成模块,被配置为将加密常量数据块嵌入可执行程序,其中,可执行程序由编译源代码文件得到,可执行程序用于在运行过程中,对日志语句中的变量部分进行加密生成加密变量数据块,并根据加密常量数据块和加密变量数据块生成加密日志数据。

5、第四方面,本公开实施例提供了一种日志加密装置,包括:变量加密模块,被配置为在运行可执行程序的过程中,响应于执行到日志语句,对日志语句中的变量部分进行加密生成加密变量数据块,其中,可执行程序中预先设置有日志语句中的常量部分对应的加密常量数据块;加密日志生成模块,被配置为根据加密常量数据块和加密变量数据块生成加密日志数据。

6、第五方面,本公开实施例提供了一种电子设备,包括:至少一个处理器;以及与至少一个处理器通信连接的存储器;其中,存储器存储有可被至少一个处理器执行的指令,指令被至少一个处理器执行,以使至少一个处理器能够执行如第一方面中任一实现方式描述的用于日志加密的编译方法或第二方面中任一实现方式描述的日志加密方法。

7、第六方面,本公开实施例提供了一种存储有计算机指令的非瞬时计算机可读存储介质,该计算机指令被处理器执行时能够实现如第一方面中任一实现方式描述的用于日志加密的编译方法或第二方面中任一实现方式描述的日志加密方法。

8、第七方面,本公开实施例提供了一种包括计算机程序的计算机程序产品,该计算机程序在被处理器执行时能够实现第一方面中任一实现方式描述的用于日志加密的编译方法或第二方面中任一实现方式描述的日志加密方法。

9、根据本公开实施例提供的技术方案,可以对源代码文件中的日志语句进行解析,确定日志语句中的常量部分;然后,对常量部分进行加密生成加密常量数据块;之后,将加密常量数据块嵌入可执行程序,其中,可执行程序由编译源代码文件得到,可执行程序用于在运行过程中,对日志语句中的变量部分进行加密生成加密变量数据块,并根据加密常量数据块和加密变量数据块生成加密日志数据。

10、通过在编译阶段预先对日志语句的常量部分完成加密并嵌入可执行程序,可执行程序内不再保存日志常量明文,避免了通过逆向程序二进制直接获取日志模板;在程序运行阶段仅对动态变量实时加密,无需在内存中拼接组装完整的日志明文字符串,能够防止内存转储造成日志明文泄露。常量密文可直接复用,省去运行时对固定文本的加密运算,降低了日志输出带来的计算与内存开销。最终输出由加密常量数据块与加密变量数据块有序构成的加密日志数据,日志传输、存储过程均以密文形式存在,有效降低了日志信息泄露风险,兼顾日志安全与程序运行性能。

11、应当理解,本部分所描述的内容并非旨在标识本公开的实施例的关键或重要特征,也不用于限制本公开的范围。本公开的其它特征将通过以下的说明书而变得容易理解。

1.一种用于日志加密的编译方法,其特征在于,所述方法包括:

2.根据权利要求1所述的方法,其特征在于,所述方法还包括:

3.根据权利要求2所述的方法,其特征在于,所述对源代码文件中的日志语句进行解析,确定所述日志语句中的常量部分,包括:

4.根据权利要求3所述的方法,其特征在于,所述方法还包括:

5.根据权利要求4所述的方法,其特征在于,所述将所述加密常量数据块嵌入可执行程序,包括:

6.根据权利要求5所述的方法,其特征在于,所述基于所述日志语句、所述加密常量数据块以及所述交替序列中的变量部分进行代码转换,生成日志代码,包括:

7.根据权利要求6所述的方法,其特征在于,所述方法还包括:

8.根据权利要求7所述的方法,其特征在于,所述将所述机器码、所述加密常量数据块、所述全局元数据表以及待生成的可执行程序依赖的库文件进行链接整合,生成所述可执行程序,包括:

9.一种日志加密方法,其特征在于,所述方法包括:

10.根据权利要求9所述的方法,其特征在于,所述对所述日志语句中的变量部分进行加密生成加密变量数据块,包括:

11.根据权利要求10所述的方法,其特征在于,所述根据所述加密常量数据块和所述加密变量数据块生成加密日志数据,包括:

12.根据权利要求9-11中任一项所述的方法,其特征在于,所述方法还包括:

13.一种用于日志加密的编译装置,其特征在于,所述装置包括:

14.一种日志加密装置,其特征在于,所述装置包括:

15.一种电子设备,其特征在于,包括:

16.一种存储有计算机指令的非瞬时计算机可读存储介质,其特征在于,所述计算机指令用于使处理器执行权利要求1-8中任一项所述的用于日志加密的编译方法或权利要求9-12中任一项所述的日志加密方法。

17.一种计算机程序产品,其特征在于,包括计算机程序,所述计算机程序被处理器执行时实现根据权利要求1-8中任一项所述的用于日志加密的编译方法或权利要求9-12中任一项所述的日志加密方法。