水印添加和水印应用方法、装置、设备及存储介质制造方法及图纸

技术编号:39300490 阅读:8 留言:0更新日期:2023-11-12 15:51
本申请涉及计算机技术领域,提供一种水印添加和水印应用方法、装置、设备及存储介质,用以提升水印对应用程序的版权保护。其中,方法包括:获取目标应用的源代码的标识信息,以及开发目标应用的目标对象的身份信息;基于标识信息、身份信息和预设密钥,随机生成多个水印对应的字节序列;基于源代码的结构信息,分别将多个字节序列嵌入到源代码的对应位置,得到目标代码;基于目标代码,生成目标应用对应的多个水印。由于各水印的字节序列是随机生成的,互不相同,从而将多个字节序列分别嵌入到目标应用的源代码后,增加了水印的破解难度,提升了水印对目标应用版权的保护性能。提升了水印对目标应用版权的保护性能。提升了水印对目标应用版权的保护性能。

【技术实现步骤摘要】
水印添加和水印应用方法、装置、设备及存储介质


[0001]本申请涉及计算机
,尤其涉及水印添加和水印应用方法、装置、设备及存储介质。

技术介绍

[0002]随着互联网技术和网络传输技术的发展,应用程序的复制越来越便利,相应地,针对应用程序版权的保护也越来越难。通过为应用程序添加水印,来达到版权保护的目的。
[0003]目前,相关技术为应用程序添加水印时,一般使用采用较长的文本串来生成水印,由于文本串较长,该文本串中的字符与伪水印的文本串中的字符的重合度较高,会增加该水印与伪水印的相似度,保护性较低,且相关技术中水印的生成方式较为单一,很容易被破解。
[0004]因此,保护应用程序的版权成为网络媒体时代亟待解决的问题。

技术实现思路

[0005]本申请实施例提供了水印添加和水印应用方法、装置、设备及存储介质,用于提升水印对应用程序的版权保护。
[0006]一方面,本申请实施例提供一种水印添加方法,包括:
[0007]获取目标应用的源代码的标识信息,以及开发所述目标应用的目标对象的身份信息;
[0008]基于所述标识信息、所述身份信息和预设密钥,随机生成多个字节序列;其中,每个字节序列包含所述标识信息和所述身份信息中,用于生成所述目标应用中添加的相应水印的元素;
[0009]基于所述源代码的结构信息,分别将所述多个字节序列嵌入到所述源代码的对应位置,得到目标代码;
[0010]基于所述目标代码,生成所述目标应用对应的多个水印。
[0011]另一方面,本申请实施例提供一种水印应用方法,所述方法包括:
[0012]获取添加多个水印的目标应用的目标代码;
[0013]基于所述目标代码中所述目标应用的源代码的结构信息,从各水印在所述目标代码中的对应位置,分别获取相应的字节序列;其中,每个字节序列是基于所述源代码的标识信息、开发所述目标应用的目标对象的身份信息和预设密钥随机生成的,包含所述标识信息和所述身份信息中用于生成所述目标应用中相应水印的元素;
[0014]基于获取的各字节序列包含的所述标识信息和所述身份信息中的元素,确定所述目标应用的版权。
[0015]另一方面,本申请实施例提供一种水印添加装置,包括:
[0016]获取模块,用于获取目标应用的源代码的标识信息,以及开发所述目标应用的目标对象的身份信息;
[0017]第一生成模块,用于基于所述标识信息、所述身份信息和预设密钥,随机生成多个字节序列;其中,每个字节序列包含所述标识信息和所述身份信息中,用于生成所述目标应用中添加的相应水印的元素;
[0018]嵌入模块,用于基于所述源代码的结构信息,分别将所述多个字节序列嵌入到所述源代码的对应位置,得到目标代码;
[0019]第二生成模块,用于基于所述目标代码,生成所述目标应用对应的多个水印。
[0020]可选的,所述结构信息至少包含:所述源代码中各函数块的位置信息,则所述嵌入模块具体用于:
[0021]针对每个字节序列,分别执行以下任意一种操作:
[0022]基于所述各函数块的位置信息,选取两个相邻的目标函数块,将一个字节序列嵌入到所述源代码的两个相邻的目标函数块之间;
[0023]基于所述各函数块的位置信息,选取一个目标函数块,将一个字节序列嵌入到所述源代码的一个目标函数块之前;
[0024]基于所述各函数块的位置信息,选取一个目标函数块,将一个字节序列嵌入到所述源代码的一个目标函数块之后。
[0025]可选的,所述结构信息至少包含:所述源代码中各逻辑功能块的位置信息,则所述嵌入模块具体用于:
[0026]针对每个字节序列,分别执行以下任意一种操作:
[0027]基于所述各逻辑功能块的位置信息,选取两个相邻的目标逻辑功能块,将一个字节序列嵌入到所述源代码的两个相邻的目标逻辑功能块之间;
[0028]基于所述各逻辑功能块的位置信息,选取一个目标逻辑功能块,将一个字节序列嵌入到所述源代码的一个目标逻辑功能块之前;
[0029]基于所述各逻辑功能块的位置信息,选取一个目标逻辑功能块,将一个字节序列嵌入到所述源代码的一个目标逻辑功能块之后。
[0030]可选的,所述源代码包含多个代码文件,且每个代码文件对应一个子标识信息;
[0031]则所述第一生成模块具体用于:
[0032]针对每个代码文件,执行以下操作:
[0033]基于一个代码文件的子标识信息、相应目标对象的身份信息和所述预设密钥,分别随机生成至少一个字节序列;
[0034]则所述嵌入模块具体用于:
[0035]基于所述一个代码文件的结构信息,分别将所述一个代码文件对应的至少一个字节序列嵌入到所述一个代码文件的对应位置,得到目标子代码;基于各个目标子代码,得到所述目标代码。
[0036]可选的,得到所述目标代码之前,所述嵌入模块还用于:
[0037]通过查询接口,获取各代码文件的水印添加任务信息,其中,所述水印添加任务信息至少包含水印添加失败的代码文件的子标识信息;
[0038]基于所述添加任务信息包含的子标识信息,重新生成所述子标识信息对应的代码文件的目标子代码。
[0039]可选的,所述添加任务信息至少还包含所述代码文件中水印添加失败的位置信
息,则所述嵌入模块具体用于:
[0040]基于所述添加任务信息包含的子标识信息,从所述子标识信息对应的代码文件中水印添加失败的位置处开始,继续生成所述子标识信息对应的代码文件的目标子代码。
[0041]可选的,所述目标应用为应用程序中的小程序。
[0042]另一方面,本申请实施例提供一种水印应用装置,包括:
[0043]获取模,用于获取添加多个水印的目标应用的目标代码;以及,基于所述目标代码中所述目标应用的源代码的结构信息,从各水印在所述目标代码中的对应位置,分别获取相应的字节序列;其中,每个字节序列是基于所述源代码的标识信息、开发所述目标应用的目标对象的身份信息和预设密钥随机生成的,包含所述标识信息和所述身份信息中用于生成所述目标应用中相应水印的元素;
[0044]确定模块,用于基于获取的各字节序列包含的所述标识信息和所述身份信息中的元素,确定所述目标应用的版权。
[0045]可选的,所述目标代码包含多个代码文件,且每个代码文件对应一个子标识信息;
[0046]则所述获取模块具体用于:
[0047]将所述目标代码拆分为多个代码文件,针对每个代码文件,执行以下操作:
[0048]基于一个代码文件的结构信息,从各水印在所述一个代码文件中的对应位置,分别获取相应的字节序列,每个字节序列是基于所述一个代码文件的子标识信息、相应目标对象的身份信息和所述预设密钥随机生成的。
[0049]可选的,所述目标应用为应用程序中的小程序。
[0050]另一方面,本申请实施例提供一种电子本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种水印添加方法,其特征在于,所述方法包括:获取目标应用的源代码的标识信息,以及开发所述目标应用的目标对象的身份信息;基于所述标识信息、所述身份信息和预设密钥,随机生成多个字节序列;其中,每个字节序列包含所述标识信息和所述身份信息中,用于生成所述目标应用中添加的相应水印的元素;基于所述源代码的结构信息,分别将所述多个字节序列嵌入到所述源代码的对应位置,得到目标代码;基于所述目标代码,生成所述目标应用对应的多个水印。2.如权利1所述的方法,其特征在于,所述结构信息至少包含:所述源代码中各函数块的位置信息;则所述基于所述源代码的结构信息,分别将所述多个字节序列嵌入到所述源代码的对应位置,包括:针对每个字节序列,分别执行以下任意一种操作:基于所述各函数块的位置信息,选取两个相邻的目标函数块,将一个字节序列嵌入到所述源代码的两个相邻的目标函数块之间;基于所述各函数块的位置信息,选取一个目标函数块,将一个字节序列嵌入到所述源代码的一个目标函数块之前;基于所述各函数块的位置信息,选取一个目标函数块,将一个字节序列嵌入到所述源代码的一个目标函数块之后。3.如权利要求1所述的方法,其特征在于,所述结构信息至少包含:所述源代码中各逻辑功能块的位置信息;则所述基于所述源代码的结构信息,分别将所述多个字节序列嵌入到所述源代码的对应位置,包括:针对每个字节序列,分别执行以下任意一种操作:基于所述各逻辑功能块的位置信息,选取两个相邻的目标逻辑功能块,将一个字节序列嵌入到所述源代码的两个相邻的目标逻辑功能块之间;基于所述各逻辑功能块的位置信息,选取一个目标逻辑功能块,将一个字节序列嵌入到所述源代码的一个目标逻辑功能块之前;基于所述各逻辑功能块的位置信息,选取一个目标逻辑功能块,将一个字节序列嵌入到所述源代码的一个目标逻辑功能块之后。4.如权利要求1所述的方法,其特征在于,所述源代码包含多个代码文件,且每个代码文件对应一个子标识信息;则所述基于所述标识信息、所述身份信息和预设密钥,随机生成多个字节序列,基于所述源代码的结构信息,分别将所述多个字节序列嵌入到所述源代码的对应位置,得到目标代码,包括:针对每个代码文件,执行以下操作:基于一个代码文件的子标识信息、相应目标对象的身份信息和所述预设密钥,分别随机生成至少一个字节序列;基于所述一个代码文件的结构信息,分别将所述一个代码文件对应的至少一个字节序
列嵌入到所述一个代码文件的对应位置,得到目标子代码;基于各个目标子代码,得到所述目标代码。5.如权利要求4所述的方法,其特征在于,得到所述目标代码之前,所述方法还包括:通过查询接口,获取各代码文件的水印添加任务信息,其中,所述水印添加任务信息至少包含水印添加失败的代码文件的子标识信息;基于所述添加任务信息包含的子标识信息,重新生成所述子标识信息对应的代码文件的目标子代码。6.如权利要求5所述的方法,其特征在于,所述添加任务信息至少还包含所述代码文件中水印添加失败的位置信息;则所述基于所述添加任务信息包含的子标识信息,重新生成所述子标识信息对应的代码文件的目标子代码,包括:基于所述添加任务信息包含的子标识信息,从所述子标识信息对应的代码文件中水印添加失败的位置处开始,继续生成所述子标识信息...

【专利技术属性】
技术研发人员:金炼张泽棉陆超华
申请(专利权)人:腾讯科技深圳有限公司
类型:发明
国别省市:

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

1