针对程序代码的处理方法、装置、计算设备及介质制造方法及图纸

技术编号:30944450 阅读:22 留言:0更新日期:2021-11-25 19:54
本公开提供了一种针对程序代码的处理方法,包括:获取原始程序代码;从所述原始程序代码中确定至少一个输出函数;从所述至少一个输出函数所定义的输出数据中确定至少一个原始字符串,其中,所述至少一个原始字符串中的每个原始字符串的长度均超过预设长度;以及确定与所述每个原始字符串对应的替换字符串,其中,每个替换字符串的长度均短于所述预设长度;以及将所述原始程序代码中包含的所述每个原始字符串替换为对应的替换字符串,以得到目标程序代码。本公开还提供了一种针对程序代码的处理装置、计算设备和介质。计算设备和介质。计算设备和介质。

【技术实现步骤摘要】
针对程序代码的处理方法、装置、计算设备及介质


[0001]本公开涉及计算机
,更具体地,涉及一种针对程序代码的处理方法、装置、计算设备及介质。

技术介绍

[0002]程序日志是一种按照时间顺序存储记录的数据表或文件,它记录了程序运行中什么时间发生了什么事情。在调试程序时,程序日志有助于开发人员发现和解决程序中的问题。
[0003]相关技术在编写程序时,将程序所要输出的程序日志的内容全部写入程序代码中。程序日志中包含大量人类可读信息,这些信息并不是程序运行所必须的,因此将这些信息写入程序代码中会占用存储资源,造成存储资源的浪费。并且,程序在输出程序日志时会消耗处理器、内存等计算资源,当程序日志的数据量较大时会严重影响程序的性能。另外,程序日志携带有大量可读信息,存在信息泄露的风险,很容易泄漏程序的功能信息、用户信息、调试信息或其它程序信息。

技术实现思路

[0004]有鉴于此,本公开提供了一种针对程序代码的处理方法、装置、计算设备及介质。
[0005]本公开的一个方面提供了一种针对程序代码的处理方法,包括:获取原始程序代码;从原始程序代码中确定至少一个输出函数;从至少一个输出函数所定义的输出数据中确定至少一个原始字符串,其中,至少一个原始字符串中的每个原始字符串的长度均超过预设长度;确定与每个原始字符串对应的替换字符串,其中,每个替换字符串的长度均短于预设长度;以及将原始程序代码中包含的每个原始字符串替换为对应的替换字符串,以得到目标程序代码。
[0006]根据本公开的实施例,上述方法还包括:存储每个原始字符串并记录每个原始字符串的存储地址;确定与每个原始字符串对应的替换字符串,包括:至少基于所记录的存储地址,确定与每个原始字符串对应的替换字符串。
[0007]根据本公开的实施例,上述至少基于所记录的存储地址,确定与每个原始字符串对应的替换字符串,包括:针对每个原始字符串,基于所记录的该原始字符串的存储地址,确定用于表征该存储地址的地址标识;以及至少基于该地址标识生成与该原始字符串对应的替换字符串。
[0008]根据本公开的实施例,上述确定与每个原始字符串对应的替换字符串,还包括:确定用于表征目标程序代码中的替换字符串的识别标识;以及至少基于识别标识和与每个原始字符串关联的地址标识,生成与每个原始字符串对应的替换字符串。
[0009]根据本公开的实施例,上述确定与每个原始字符串对应的替换字符串,还包括:针对每个原始字符串,基于识别标识和与该原始字符串关联的地址标识,生成用于校验替换字符串的校验标识;以及基于识别标识、该地址标识和该校验标识,生成与该原始字符串对
应的替换字符串。
[0010]根据本公开的实施例,上述方法还包括:编译并运行目标程序代码;获取目标程序代码在运行时所输出的目标数据,基于识别标识识别目标数据中包含的所有替换字符串;以及将目标数据中识别出的所有替换字符串逐个替换为对应的原始字符串,以得到目标日志。
[0011]根据本公开的实施例,上述将目标数据中识别出的所有替换字符串逐个替换为对应的原始字符串,包括:针对目标数据中的每个替换字符串,确定与该替换字符串对应的存储地址;从该存储地址读取原始字符串;以及将目标程序代码中包含的该替换字符串替换为该原始字符串。
[0012]根据本公开的实施例,上述确定与该替换字符串对应的存储地址,包括:基于该替换字符串中包含的地址标识,确定与该替换字符串对应的存储地址。
[0013]根据本公开的实施例,上述方法还包括:在将目标数据中识别出的所有替换字符串逐个替换为对应的原始字符串之前,针对每个替换字符串,基于该替换字符串中包含的校验标识进行校验;以及响应于校验通过,执行将该替换字符串替换为对应的原始字符串的相关操作。
[0014]本公开的另一个方面提供了一种针对程序代码的处理装置,包括:获取模块,用于获取原始程序代码;输出函数确定模块,用于从原始程序代码中确定至少一个输出函数;原始字符串确定模块,用于从至少一个输出函数所定义的输出数据中确定至少一个原始字符串,其中,至少一个原始字符串中的每个原始字符串的长度均超过预设长度;替换字符串确定模块,用于确定与每个原始字符串对应的替换字符串,其中,每个替换字符串的长度均短于预设长度;以及替换模块,用于将原始程序代码中包含的每个原始字符串替换为对应的替换字符串,以得到目标程序代码。
[0015]根据本公开的实施例,上述装置还包括:存储模块,用于存储每个原始字符串并记录每个原始字符串的存储地址;替换字符串确定模块,具体用于:基于所记录的该原始字符串的存储地址,确定用于表征该存储地址的地址标识;确定用于表征目标程序代码中的替换字符串的识别标识;针对每个原始字符串,基于识别标识和与该原始字符串关联的地址标识,生成用于校验替换字符串的校验标识;以及基于识别标识、该地址标识和该校验标识,生成与该原始字符串对应的替换字符串。
[0016]根据本公开的实施例,上述装置还包括:编译运行模块,用于编译并运行目标程序代码;目标数据获取模块,用于获取目标程序代码在运行时所输出的目标数据,基于识别标识识别目标数据中包含的所有替换字符串;以及恢复模块,用于将目标数据中识别出的所有替换字符串逐个替换为对应的原始字符串,以得到目标日志。
[0017]本公开的另一个方面提供了一种计算设备,包括:一个或多个处理器;存储装置,用于存储一个或多个程序,其中,当所述一个或多个程序被所述一个或多个处理器执行时,使得所述一个或多个处理器实现如上所述的方法。
[0018]本公开的另一方面提供了一种计算机可读存储介质,存储有计算机可执行指令,所述指令在被执行时用于实现如上所述的方法。
[0019]本公开的另一方面提供了一种计算机程序,所述计算机程序包括计算机可执行指令,所述指令在被执行时用于实现如上所述的方法。
[0020]根据本公开的实施例,针对程序代码中的输出函数,将其所定义的输出数据中超过预设长度的原始字符串用较短的替换字符串替换,以得到精简的程序代码,从而减少了程序代码的数据量,降低了对存储资源和计算资源的占用,提高了运行性能。并且,替换字符串能够隐藏原始字符串中的信息,从而减少信息泄露的风险。
附图说明
[0021]通过以下参照附图对本公开实施例的描述,本公开的上述以及其他目的、特征和优点将更为清楚,在附图中:
[0022]图1示意性示出了根据本公开实施例的可以应用针对程序代码的处理方法和装置的示例性应用场景;
[0023]图2A示意性示出了根据本公开的实施例的针对程序代码的处理方法的流程图;
[0024]图2B示意性示出了根据本公开另一实施例的针对程序代码的处理方法的流程图;
[0025]图2C示意性示出了根据本公开另一实施例的针对程序代码的处理方法的流程图;
[0026]图2D示意性示出了根据本公开另一实施例的针对程序代码的处理方法的流程图;
[0027]图3A示意性示出了本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种针对程序代码的处理方法,包括:获取原始程序代码;从所述原始程序代码中确定至少一个输出函数;从所述至少一个输出函数所定义的输出数据中确定至少一个原始字符串,其中,所述至少一个原始字符串中的每个原始字符串的长度均超过预设长度;确定与所述每个原始字符串对应的替换字符串,其中,每个替换字符串的长度均短于所述预设长度;以及将所述原始程序代码中包含的所述每个原始字符串替换为对应的替换字符串,以得到目标程序代码。2.根据权利要求1所述的方法,其中:所述方法还包括:存储所述每个原始字符串并记录所述每个原始字符串的存储地址;所述确定与所述每个原始字符串对应的替换字符串,包括:至少基于所记录的存储地址,确定与所述每个原始字符串对应的替换字符串。3.根据权利要求2所述的方法,其中,所述至少基于所记录的存储地址,确定与所述每个原始字符串对应的替换字符串,包括:针对所述每个原始字符串,基于所记录的该原始字符串的存储地址,确定用于表征该存储地址的地址标识;以及至少基于该地址标识生成与该原始字符串对应的替换字符串。4.根据权利要求3所述的方法,其中,所述确定与所述每个原始字符串对应的替换字符串,还包括:确定用于表征所述目标程序代码中的替换字符串的识别标识;以及至少基于所述识别标识和与所述每个原始字符串关联的地址标识,生成与所述每个原始字符串对应的替换字符串。5.根据权利要求4所述的方法,其中,所述确定与所述每个原始字符串对应的替换字符串,还包括:针对所述每个原始字符串,基于所述识别标识和与该原始字符串关联的地址标识,生成用于校验替换字符串的校验标识;以及基于所述识别标识、该地址标识和该校验标识,生成与该原始字符串对应的替换字符串。6.根据权利要求5所述的方法,还包括:编译并运行所述目标程序代码;获取所述目标程序代码在运行时所输出的目标数据,基于所述识别标识识别所述目标数据中包含的所有替换字符串;以及将所述目标数据中识别出的所有替换字符串逐个替换为对应的原始字符串,以得到目标日志。7.根据权利要求6所述的方法,其中,所述将所述目标数据中识别出的所有替换字符串逐个替换为对应的原始字符串,包括:针对所述目标数据中的每个替换字符串,确定与该替换字符串对应的存储地址;从该存储地址读取原始字符串;以及将所述目标程序代码中包含的该替换字符串替换为该原始字符串。
8.根据权利要求7所述的...

【专利技术属性】
技术研发人员:李志伟
申请(专利权)人:北京京东世纪贸易有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1