CN108256343A - Shader文件的加密方法、装置及解密方法、装置 - Google Patents

Shader文件的加密方法、装置及解密方法、装置 Download PDF

Info

Publication number
CN108256343A
CN108256343A CN201810029006.XA CN201810029006A CN108256343A CN 108256343 A CN108256343 A CN 108256343A CN 201810029006 A CN201810029006 A CN 201810029006A CN 108256343 A CN108256343 A CN 108256343A
Authority
CN
China
Prior art keywords
shader
files
shader files
encryption
encrypted
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
CN201810029006.XA
Other languages
English (en)
Other versions
CN108256343B (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.)
Wuhan Douyu Network Technology Co Ltd
Original Assignee
Wuhan Douyu Network 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 Wuhan Douyu Network Technology Co Ltd filed Critical Wuhan Douyu Network Technology Co Ltd
Priority to CN201810029006.XA priority Critical patent/CN108256343B/zh
Publication of CN108256343A publication Critical patent/CN108256343A/zh
Application granted granted Critical
Publication of CN108256343B publication Critical patent/CN108256343B/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/602Providing cryptographic facilities or services
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2107File encryption

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • General Health & Medical Sciences (AREA)
  • Computer Hardware Design (AREA)
  • Computer Security & Cryptography (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Storage Device Security (AREA)

Abstract

本发明实施例提供了一种Shader文件的加密方法、装置及解密方法、装置,该加密方法包括:对客户端程序对应的各个Shader文件进行排序,依次获取各个Shader文件的编码值;根据预设的加密循环规则建立编码值与Shader文件之间的映射关系;将与每一Shader文件具有映射关系的编码值作为该Shader文件的加密KEY值,并采用该加密KEY值对相应的Shader文件进行加密;将加密后的Shader文件分布到客户端程序的不同DLL文件中;生成配置关系列表;将配置关系列表添加到客户端程序的主程序中,并随客户端程序进行发布。本发明实施例提供的Shader文件的加密方法、装置及解密方法、装置,能够有效地防止shader文件被黑客或者第三方程序非法获取或修改,实现Shader文件的保护。

Description

Shader文件的加密方法、装置及解密方法、装置
技术领域
本发明涉及计算机网络技术领域,尤其涉及一种Shader文件的加密方法、装置及解密方法、装置。
背景技术
目前,随着移动端互联网的发展,直播网站也越来越受到大家的喜爱。直播平台会给主播提供直播客户端,为了让主播的展现更美观、漂亮,直播客户端会提供各种美颜的效果,例如,磨皮的效果,从而去除脸上的斑点,还例如,各种滤镜的效果,从而可以显示不同的场景的效果。
现有技术中,直播客户端针对这些核心的美颜效果都是通过编写GPU(GraphicsProcessing Unit,图形处理器)的Shader程序(即着色程序)实现,而Shader文件存储的是GPU执行的Shader代码,其文件存储的则是源代码,如果Shader文件被第三方或者其他人获得,则可以直接使用以完成同样的功能或是对Shader代码进行恶意修改。因此,如何对Shader文件进行加密保护,防止其被第三方平台或者黑客所盗取或恶意修改具有重要意义。
发明内容
鉴于上述问题,提出了本发明以便提供一种克服上述问题或者至少部分地解决上述问题的Shader文件的加密方法、装置及解密方法、装置。
本发明的一个方面,提供了一种Shader文件的加密方法,包括:
对客户端程序对应的各个Shader文件进行排序,依次获取各个Shader文件的编码值;
根据预设的加密循环规则建立编码值与Shader文件之间的映射关系;
将与每一Shader文件具有映射关系的编码值作为该Shader文件的加密KEY值,并采用得到的加密KEY值对相应的Shader文件进行加密;
将各个加密后的Shader文件分布到客户端程序的不同DLL文件中;
生成配置关系列表,所述配置关系列表中包括Shader文件与对应的加密算法和所分布的DLL文件之间的对应关系,以及加密循环规则和至少一个Shader文件的加密KEY值;
将所述配置关系列表添加到所述客户端程序的主程序中,并随所述客户端程序进行发布。
可选地,所述采用得到的加密KEY值对相应的Shader文件进行加密包括:
采用不用的加密算法分别根据每一Shader文件的加密KEY值对各个Shader文件进行加密。
可选地,所述将各个加密后的Shader文件分布到客户端程序的不同DLL文件中包括:
根据预设对应关系将各个加密后的Shader文件分别分布到客户端程序的指定DLL文件中,或采取随机原则将各个加密后的Shader文件分布到客户端程序的不同DLL文件中。
可选地,所述将各个加密后的Shader文件分布到客户端程序的不同DLL文件中包括:
在所述DLL文件中增加全局变量,所述全局变量用于存储加密后的Shader文件。
本发明的一个方面,提供了一种Shader文件的解密方法,包括:
从客户端程序的主程序中获取配置关系列表,所述配置关系列表中包括Shader文件与对应的加密算法和所分布的DLL文件之间的对应关系,以及加密循环规则和至少一个Shader文件的加密KEY值;
从所述配置关系列表中查找待执行Shader文件所分布的DLL文件,并从对应的DLL文件中获取加密后的Shader文件;
根据所述加密循环规则确定与所述待执行Shader文件具有映射关系的编码值所对应的目标Shader文件,所述目标Shader文件的编码值为所述待执行Shader文件的加密KEY值;
根据所述至少一个Shader文件的加密KEY值按照所述加密循环规则依次进行Shader文件解密,得到解密后的目标Shader文件;
获取所述目标Shader文件的编码值;
从所述配置关系列表中查找所述待执行Shader文件对应的加密算法,并根据所述加密算法对应的解密算法和所述目标Shader文件的编码值对获取的加密后的Shader文件进行解密,得到待执行Shader文件。
本发明的一个方面,提供了一种Shader文件的加密装置,包括:
服务端编码模块,用于对客户端程序对应的各个Shader文件进行排序,依次获取各个Shader文件的编码值;
关系建立模块,用于根据预设的加密循环规则建立编码值与Shader文件之间的映射关系;
加密模块,用于将与每一Shader文件具有映射关系的编码值作为该Shader文件的加密KEY值,并采用得到的加密KEY值对相应的Shader文件进行加密;
分布模块,用于将各个加密后的Shader文件分布到客户端程序的不同DLL文件中;
配置模块,用于生成配置关系列表,所述配置关系列表中包括Shader文件与对应的加密算法和所分布的DLL文件之间的对应关系,以及加密循环规则和至少一个Shader文件的加密KEY值;
添加模块,用于将所述配置关系列表添加到所述客户端程序的主程序中,并随所述客户端程序进行发布。
可选地,所述加密模块,具体用于采用不用的加密算法分别根据每一Shader文件的加密KEY值对各个Shader文件进行加密。
本发明的一个方面,提供了一种Shader文件的解密装置,包括:
获取模块,用于从客户端程序的主程序中获取配置关系列表,所述配置关系列表中包括Shader文件与对应的加密算法和所分布的DLL文件之间的对应关系,以及加密循环规则和至少一个Shader文件的加密KEY值;
提取模块,用于从所述配置关系列表中查找待执行Shader文件所分布的DLL文件,并从对应的DLL文件中提取加密后的Shader文件;
判定模块,用于根据所述加密循环规则确定与所述待执行Shader文件具有映射关系的编码值所对应的目标Shader文件,所述目标Shader文件的编码值为所述待执行Shader文件的加密KEY值;
解密模块,用于根据所述至少一个Shader文件的加密KEY值按照所述加密循环规则依次进行Shader文件解密,得到解密后的目标Shader文件;
客户端编码模块,用于获取所述目标Shader文件的编码值;
所述解密模块,还用于从所述配置关系列表中查找所述待执行Shader文件对应的加密算法,并根据所述加密算法对应的解密算法和所述目标Shader文件的编码值对提取的加密后的Shader文件进行解密,得到待执行Shader文件。
此外,本发明还提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如上任一所述方法的步骤。
此外,本发明还提供了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如上任一所述方法的步骤。
本发明实施例提供的Shader文件的加密方法、装置及解密方法、装置,通过将客户端需要使用的多个Shader文件分别进行加密,然后将其分布到不同的程序组件DLL文件中,从而将核心的Shader文件的加密数据存储到客户端程序的组件中,并且随组件一起发布。而当客户端启动后,需要执行Shader文件的代码时,则从DLL文件中读取Shader文件的加密数据,然后进行解密得到Shader文件,从而极好的起到了隐藏Shader文件的目的,使得黑客或者第三方无法轻易的获取到shader文件,实现了Shader文件的保护。
而且,本发明实施例通过对各个Shader文件的加密过程进行关联,只有解密了第一个Shader文件才能够解密第二个Shader文件,只有解密了第二个Shader文件才能解密第三个Shader文件,从而产生一种依赖解密,进一步提高黑客或者第三方的破解门槛。
上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式。
附图说明
通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:
图1为本发明实施例的一种Shader文件的加密方法的流程图;
图2为本发明实施例的另一种Shader文件的解密方法的流程图;
图3为本发明实施例的一种Shader文件的加密装置的结构示意图;
图4为本发明实施例的另一种Shader文件的解密装置的结构示意图;
图5为本发明实施例的计算机设备的示意图。
具体实施方式
下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。
本技术领域技术人员可以理解,除非另外定义,这里使用的所有术语(包括技术术语和科学术语),具有与本发明所属领域中的普通技术人员的一般理解相同的意义。还应该理解的是,诸如通用字典中定义的那些术语,应该被理解为具有与现有技术的上下文中的意义一致的意义,并且除非被特定定义,否则不会用理想化或过于正式的含义来解释。
图1示意性示出了本发明一个实施例的Shader文件的加密方法的流程图。所述的Shader文件的加密方法由服务器侧执行。参照图1,本发明实施例提供的Shader文件的加密方法具体包括以下步骤:
步骤S11、对客户端程序对应的各个Shader文件进行排序,依次获取各个Shader文件的编码值。
本发明实施例中,所述客户端程序可以为直播客户端程序,客户端会提供各种美颜的效果,针对这些美颜效果都是通过编写GPU的Shader程序,而Shader文件是存储GPU执行的Shader程序代码的文件。
步骤S12、根据预设的加密循环规则建立编码值与Shader文件之间的映射关系。本发明实施例使用循环的加密规则,只有解密了上层的Shader文件才能解密后续的Shader文件,从而产生了后一个文件的解密依赖于前一个文件的解密的依赖关系,提高黑客或者第三方的破解门槛,使得黑客或者第三方无法轻易的获取到shader文件。
步骤S13、将与每一Shader文件具有映射关系的编码值作为该Shader文件的加密KEY值,并采用得到的加密KEY值对相应的Shader文件进行加密。
在本发明实施例中,所述采用得到的加密KEY值对相应的Shader文件进行加密具体为:采用不用的加密算法分别根据每一Shader文件的加密KEY值对各个Shader文件进行加密。
步骤S14、将各个加密后的Shader文件分布到客户端程序的不同DLL文件中。
步骤S15、生成配置关系列表,所述配置关系列表中包括Shader文件与对应的加密算法和所分布的DLL文件之间的对应关系,以及加密循环规则和至少一个Shader文件的加密KEY值。
由于本实施例中各个Shader文件的解密过程具有依赖解密,因此在配置关系列表中需要给出至少一个Shader文件的加密KEY值,作为初始解密的加密KEY值。
步骤S16、将所述配置关系列表添加到所述客户端程序的主程序中,并随所述客户端程序进行发布。
本发明实施例提供的Shader文件的加密方法,通过将客户端需要使用的多个Shader文件分别进行加密,然后将其分布到不同的程序组件DLL文件中,从而将核心的Shader文件的加密数据存储到客户端程序的组件中,并且随组件一起发布。而当客户端启动后,需要执行Shader文件的代码时,则从DLL文件中读取Shader文件的加密数据,然后进行解密得到Shader文件,从而极好的起到了隐藏Shader文件的目的,使得黑客或者第三方无法轻易的获取到shader文件,实现了Shader文件的保护。
而且,本发明实施例通过对各个Shader文件的加密过程进行关联,只有解密了第一个Shader文件才能够解密第二个Shader文件,只有解密了第二个Shader文件才能解密第三个Shader文件,从而产生一种依赖解密,进一步提高黑客或者第三方的破解门槛。
本发明的一个实施例中,具体可以采用不用的加密算法对所述客户端程序对应的各个Shader文件分别进行加密。
首先,将客户端所有使用的各个Shader文件读取到内存中并且分别计算其MD5值,将得到的MD5值作为后续Shader文件加密的KEY。
本实施例对已经编写好的各个Shader文件进行加密,从而得到一串加密后的字符串。为了进一步的提高Shader文件的加密强度,本发明实施例中进一步可以使用不同的加密算法和KEY来对Shader文件进行加密,从而提高破解门槛。具体实现如下:
1.读取每个Shader文件到内存中。
读取每个独立的Shader文件,将整个文件的内容读取到内存中。本发明实施例使用系统函数fopen和fread来读取文件。
FILE*pFile=fopen("beauty.shader","rb");
通过调用系统函数fopen来打开一个文件。
其中参数1"beauty.shader"是打开的文件名称。
其中参数2"rb"则是以二进制的方式来打开文件。
返回值则是文件的句柄pFile。
fseek(pFile,0,SEEK_END);
通过调用fseek函数则将文件的读取指针移动到文件尾部。
Long Size=ftell(pFile);
通过调用系统函数ftell则得到Shader文件的大小Size。
Char*buffer=(char*)malloc(Size);
调用系统函数malloc来分配一段内存,分配大小则是Shader文件的大小。
fread(buffer,1,Size,pFile);
调用系统函数fread来读取整个文件内容到分配的内存中。
fclose(pFile);
调用系统函数fclose来关闭文件句柄。
从而将整个shader文件的内容读取到了分配的内存中。
2.计算整个Shader文件的Md5值。
本发明实施例,通过对读取的整个Shader文件计算其MD5值,从而得到后续加密Shader文件使用的KEY值。
KEY=MD5.Create(buffer,Size);
通过调用MD5函数的接口Create来计算读取的文件内容计算其MD5结果。
其中参数buff则是读取的shader文件的内存。
其中参数size则是读取的shader文件的大小。
同样的对所有的Shader文件都采用上述的方案,至此就完成了读取Shader文件到内存中并计算其内容的MD5值从而得到对应的KEY值。
然后,针对每个Shader文件内容采用循环的加密方法。
本发明实施例针对每个Shader本文使用不同的加密算法和KEY进行加密,以此来增加算法的安全性,提高破解的门槛。具体对每个Shader使用何种加密算法,则可以采用随机算法,随机选择一种,也可以针对每一个Shader指定一种算法。最终会得到一份列表,列表中则表明那个Shader文件使用那种加密算法来进行加密的。在一个具体实施例中,可以约定后一个Shader加密使用前一个Shader的文件内容的MD5来作为加密算法的KEY值,以此来实现循环加密规则。
具体实现如下:
假设现有beauty1.shader文件,和beauty2.shader文件和beauty3.shader文件,3个shader文件。
那么通过之前的操作可以将3个shader文件都读取进了内存得到3个内存buff,分别是buff1对应读取的beauty1.shader文件,并且对应计算的key1,buff2对应读取的beauty2.shader文件,并且对应计算的key2,buff3对应读取的beauty3.shader文件,并且对应计算的key3。
本实施例中,具体循环加密规则如下:只有解密了beauty1.shader才能解密beauty2.shader,只有解密了beauty2.shader才能解密beauty3.shader。当然这个顺序还可以是其他顺序,例如beauty2,beauty3,beauty1等,从而产生了后一个文件的解密依赖于前一个文件的解密。
本实施例中,可以指定beauty1.shader使用加密算法TEA来加密;指定beauty2.shader使用加密算法DES来加密;指定beauty2.shader使用加密算法AES来加密。
具体实现如下:
依赖于之前设定的beauty3依赖于beauty2,beauty2依赖于beauty1,因此需要先加密beauty3.shader。
Encryptbuff3=AES.encrypt(buff3,buff3len,key2);
此次对于beauty3对应的内存是buff3,通过加密后则得到了加密后的beauty3的加密密文Encryptbuff3。
其中加密时使用的是KEY2作为加密算法的KEY值,而KEY2的值是通过计算明文的beauty2得到的,所以想要解密beauty3则必须先得到明文的beauty2文件,然后计算其MD5值才能得到解密时使用的KEY2值。
在一个实施例中,得到加密后的beauty3后,可以再对加密后的beauty3计算Md5值从而得到KEY3值:KEY3=MD5.Create(Encryptbuff3,buff3len);也可以直接将beauty3的MD5值作为KEY3值:KEY3=MD5.Create(buff3,buff3len)。
然后再加密beauty2文件。
Encryptbuff2=DES.encrypt(buff2,buff2len,KEY1);
其中加密时使用的是KEY1作为加密算法的KEY值,而KEY1的值是通过计算明文的beauty1得到的,所以相要解密beauty2则必须先得到名问的beauty1文件,然后计算其MD5值才能得到解密时使用的KEY1。
然后再加密beauty1文件。
Encryptbuff1=TEA.encrypt(buff1,buff1len,KEY3);
其中加密时使用的是KEY3作为加密算法的KEY值,而KEY3值是通过计算密文或明文的beauty3得到的。由于密文的beauty3是可以直接从DLL文件中获取到的,所以无需此时无需单独给出KEY3值。但是对应KEY3值是通过计算明文的beauty3得到时,需要给出KEY3值。
本实施例中,会得到一份子配置表格,表格中存储有各个Shader文件对应的加密算法,但是表格中并不需要存储所有Shader文件加密时使用的KEY值,而只需要存储加密时的顺序,例如,先加密beauty3,然后beauty2,最后是beauty1。至此完成了对每个Shader文件进行加密,并且依据顺序进行加密,并且彼此关联。
本发明一个实施例中,所述将各个加密后的Shader文件分布到客户端程序的不同DLL文件中包括:
根据预设对应关系将各个加密后的Shader文件分别分布到客户端程序的指定DLL文件中,或采取随机原则将各个加密后的Shader文件分布到客户端程序的不同DLL文件中。
本实施例中,具体通过在所述DLL文件中增加全局变量,来存储加密后的Shader文件。
在一个具体实施例中,首先在每个DLL中定义一个全局变量用于存储Shader加密内容。
具体的,在预设对应关系或采取随机原则确定了那个DLL文件来对应于那个Shader文件之后,在每个DLL中定义一个全局变量,来存储加密后的Shader文件的内容,并且将定义的全局变量导出,从而使得主程序EXE可以获取到该全局变量存储的Shader文件的内容。具体实现如下:
先假设定义的全局变量名称是Encrypt_Shader;
extern"C"__declspec(dllexport)char*Encrypt_Shader;
通过编译器的语句extern"C"__declspec(dllexport),则可以导出变量全局变量Encrypt_Shader,而在全局变量Encrypt_Shader中则存储了加密后的Shader内容。
再定义一个全局变量用于存储加密后的Shader文件的内容的长度。
extern"C"__declspec(dllexport)int Encrypt_Len;
其中,Encrypt_Len则表示Encrypt_Shader的内容长度。至此就实现了在DLL文件中定义2个全局的导出变量存储Shader文件的内容和长度。
然后,生成一份子配置表格用于表明那个DLL文件存储那个Shader加密后的数据。对于一个应用程序来说,通常是有一个主程序EXE文件和多个DLL文件组成,那么每一个DLL文件则相当于是一个组件,被EXE文件所使用。本发明实施例则可以将Shader文件加密后的字符串保存到DLL文件中,然后使用时,则从对应的DLL文件中去读取加密的shader文件内容,然后对内容进行解密从而得到原始的Shader文件,从而可以后续执行Shader的功能。对此那个DLL文件存储那个Shader文件,本发明实施例则也可以采取随机的原则,也可以按照指定每个DLL文件存储那个Shader文件的策略。最终可以得到一份子配置表格,子表格中则具有那个DLL文件对应于存储那个Shader文件的加密字符串。
例如:
Ab.dll存储beauty1.shader加密串;
Bc.dll存储beauty2.shader加密串;
F.dll存储beauty3.shader加密串。
至此就实现了生成一份配置表格用于表明那个DLL文件来存储那个加密后的shader文件。
最后,根据前面得到的两份子配置表格得到一份配置关系列表,在主程序EXE中保存该配置关系列表。
具体的,在主程序中会保存最终的一份配置关系列表,所述配置关系列表中包括Shader文件与对应的加密算法和所分布的DLL文件之间的对应关系,以及加密循环规则和至少一个Shader文件的加密KEY值,用于记录那个DLL存储了那个Shader文件,以及每个Shader文件使用那个加密算法来加密,以及加密循环依赖关系、来进行初始解密的至少一个KEY值。本实施例中,最终得到配置列表信息如下:
Ab.dll beauty1.shader TEA
Bc.dll beauty2.shader DES
F.dll beauty3.shader AES
加密循环规则是beauty3,beauty2,beauty1,以及beauty3.shader对应的KEY值。例如,beauty3.shader的MD5值,或加密后的beauty3.shader的MD5。
从而主程序中可以得到任意一个shader文件的存储位置以及加密时使用那个加密算法,使用那个key值,以供后续解密是根据加密时使用那个加密算法确定对应的解密算法。至此就实现了在主程序EXE中配置一份配置表格用于记录Shader文件使用时的存储位置解密算法及加密Shader文件的顺序。
图2示意性示出了本发明一个实施例的Shader文件的解密方法的流程图。所述的Shader文件的解密方法由客户端侧执行。参照图2,本发明实施例提供的Shader文件的解密方法具体包括以下步骤:
步骤S21、从客户端程序的主程序中获取配置关系列表,所述配置关系列表中包括Shader文件与对应的加密算法和所分布的DLL文件之间的对应关系,以及加密循环规则和至少一个Shader文件的加密KEY值。
本发明实施例中,所述客户端程序可以为直播客户端程序,客户端会提供各种美颜的效果,针对这些美颜效果都是通过编写GPU的Shader程序,而Shader文件是存储GPU执行的Shader程序代码的文件。
步骤S22、从所述配置关系列表中查找待执行Shader文件所分布的DLL文件,并从对应的DLL文件中获取加密后的Shader文件;
步骤S23、根据所述加密循环规则确定与所述待执行Shader文件具有映射关系的编码值所对应的目标Shader文件,所述目标Shader文件的编码值为所述待执行Shader文件的加密KEY值;
步骤S24、根据所述至少一个Shader文件的加密KEY值按照所述加密循环规则依次进行Shader文件解密,得到解密后的目标Shader文件;
步骤S25、获取所述目标Shader文件的编码值;
步骤S26、从所述配置关系列表中查找所述待执行Shader文件对应的加密算法,并根据所述加密算法对应的解密算法和所述目标Shader文件的编码值对获取的加密后的Shader文件进行解密,得到待执行Shader文件。
在本发明实施例中,当客户端程序中需要调用Shader的代码来实现美颜等功能时,则需要去解密Shader文件的内容。当程序中需要调用Shader的代码来实现美颜等功能时,则需要去解密Shader文件的内容。首先,在客户端程序的EXE主程序中存储了一份配置关系列表,那么当需要执行那个Shader文件时,则可以从配置关系列表中查找待执行Shader文件所分布的DLL文件,读取所述DLL文件中存储的加密后的Shader内容,然后依据解密算法来解密Shader文件的内容,从而得到原始的Shader内容。具体实现如下:
1.读取配置关系列表。
通过读取主程序存储的配置关系列表则可以得到如下数据:
Ab.dll beauty1.shader TEA
从而获得了存储的DLL文件以及加密算法。
2.读取DLL文件中加密的Shader内容。
首先加载对应的DLL文件到主程序的进程中。
HINSTANCE hInst=LoadLibrary("Ab.dll");
通过调研系统函数LoadLibrary来加载一个DLL文件。
传入对应的DLL的文件名称"Ab.dll"。
获取该DLL的导出全局变量。
Char*pData=GetProcAddress(hInst,"Encrypt_Shader");
int nLen=GetProcAddress(hInst,"Encrypt_Len");
通过调用系统函数GetProcAddress来获取导出变量的内存位置,本文则读取了加密后的Shader文件存储的位置,以及存储的Shader文件的大小。
3.对Shader文件进行解密。
读取到了Shader文件内容后,则可以对其进行解密,从而后续可以直接使用。首先则需要从配置表格中读取加密算法的类型和加密时的顺序。解密时则需要和加密相反的顺序:
如果要想获取beauty3的shader文件内容,则必须先解密beauty1,然后解密beauty2,然后才能解密出beauty3。
如果是想获取beauty2的shader文件,则解密顺序则是先解密beauty1,然后再解密beauty2文件。
如果是想获取beauty1的shader文件,则需要先获取加密后的beauty3的加密内容计算MD5值才能解密beauty1。
具体实现如下:
假设现在需要获取beauty3的shader文件。
首先,读取beauty3的shader文件加密后的内容。
从而得到pData3,nLen3。
其中pData3则对应与存储在F.dll中加密后的shader文件内容。nLen3则对应其长度。
计算beauty3的加密的MD5值。
Key3=Md5.create(pData3,nLen3);
从而得到beauty3的加密后内容的MD5值做为Key3.
解密beauty1的shader文件内容。
Shaderbuff1=TEA.decrypt(pData,nLen,key3);
其中TEA.decrypt则是TEA算法的解密算法。
其中pData则是从DLL中读取到的加密后的Shader内容。
其中nLen则是读取的加密后的Shader内容的长度。
其中Key3则是加密时使用的KEY数据。
从而最终得到解密后的结果shaderbuff1,即是原始的Shader文件的内容。
解密beauty2的shader内容。
在解密beauty2之前需要先计算明文的beauty1的MD5值做完KEY来计算。
Key1=Md5.create(shaderbuff1,nLen1);
其中shaderbuff1则是步骤3解密出来的beauty1的明文内容。
然后,读取加密后的beauty2并进行解密其内容。
读取beauty2的shader文件加密后的内容。
从而得到pData2,nLen2。
其中pData2则对应与存储在Bc.dll中加密后的shader文件内容。nLen2则对应其长度。
shaderbuff2=DES.decrypt(pData2,nLen2,key1);
从而得到原始的beauty2的明文内容shaderbuff2。
解密beauty3。
在解密beauty3之前需要先计算明文的beauty2的MD5值做完KEY来计算。
Key2=Md5.create(shaderbuff2,nLen2);
其中shaderbuff2则是步骤4解密出来的beauty2的明文内容。
然后,读取加密后的beauty3并进行解密其内容。
通过读取beauty3的shader文件加密后的内容。
从而得到pData3,nLen3。
其中pData3则对应与存储在Ab.dll中加密后的shader文件内容。nLen3则对应其长度。
Shaderbuff3=AES.decrypt(pData3,nLen3,key2);
从而得到原始的beauty3的明文内容shaderbuff3。至此就实现了在读取DLL中存储的加密后的Shader文件的内容并进行解密得到原始的数据。
本实施例的解密步骤则正好和加密时的顺序相反,并且一个shader文件的解密依赖于上一个shader文件的解密,从而形成依赖关系,从而要想获得某一个shader文件,则必须解密出所有相关的shader文件,并且本文每个shader使用不同的加密算法,进一步的提高了复杂度。
本发明实施例提供的Shader文件的解密方法,当客户端启动后,需要执行Shader文件的代码时,则从DLL文件中读取Shader文件的加密数据,然后进行解密得到Shader文件,从而极好的起到了隐藏Shader文件的目的,使得黑客或者第三方无法轻易的获取到shader文件,实现了Shader文件的保护。
而且,本发明实施例通过对各个Shader文件的加密过程进行关联,只有解密了第一个Shader文件才能够解密第二个Shader文件,只有解密了第二个Shader文件才能解密第三个Shader文件,从而产生一种依赖解密,进一步提高黑客或者第三方的破解门槛。
对于方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明实施例并不受所描述的动作顺序的限制,因为依据本发明实施例,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作并不一定是本发明实施例所必须的。
图3示意性示出了本发明一个实施例的Shader文件的加密装置的结构示意图。所述Shader文件的加密装置配置于服务器侧,参照图3,本发明实施例的Shader文件的加密装置具体包括服务器编码模块301、关系建立模块302、加密模块303、分布模块304、配置模块305以及添加模块306,其中:
服务器编码模块301,用于对客户端程序对应的各个Shader文件进行排序,依次获取各个Shader文件的编码值;
关系建立模块302,用于根据预设的加密循环规则建立编码值与Shader文件之间的映射关系;
加密模块303,用于将与每一Shader文件具有映射关系的编码值作为该Shader文件的加密KEY值,并采用得到的加密KEY值对相应的Shader文件进行加密;
分布模块304,用于将各个加密后的Shader文件分布到客户端程序的不同DLL文件中;
配置模块305,用于生成配置关系列表,所述配置关系列表中包括Shader文件与对应的加密算法和所分布的DLL文件之间的对应关系,以及加密循环规则和至少一个Shader文件的加密KEY值;
添加模块306,用于将所述配置关系列表添加到所述客户端程序的主程序中,并随所述客户端程序进行发布。
在本发明的一个可选实施例中,所述加密模块,具体用于采用不用的加密算法分别根据每一Shader文件的加密KEY值对各个Shader文件进行加密。
在本发明的一个可选实施例中,分布模块302,具体用于根据预设对应关系将各个加密后的Shader文件分别分布到客户端程序的指定DLL文件中,或采取随机原则将各个加密后的Shader文件分布到客户端程序的不同DLL文件中。
具体的,分布模块302,通过在所述DLL文件中增加全局变量,用来存储加密后的Shader文件。
本发明实施例提供的Shader文件的加密装置,通过将客户端需要使用的多个Shader文件分别进行加密,然后将其分布到不同的程序组件DLL文件中,从而将核心的Shader文件的加密数据存储到客户端程序的组件中,并且随组件一起发布。而当客户端启动后,需要执行Shader文件的代码时,则从DLL文件中读取Shader文件的加密数据,然后进行解密得到Shader文件,从而极好的起到了隐藏Shader文件的目的,使得黑客或者第三方无法轻易的获取到shader文件,实现了Shader文件的保护。
而且,本发明实施例通过对各个Shader文件的加密过程进行关联,只有解密了第一个Shader文件才能够解密第二个Shader文件,只有解密了第二个Shader文件才能解密第三个Shader文件,从而产生一种依赖解密,进一步提高黑客或者第三方的破解门槛。
图4示意性示出了本发明一个实施例的Shader文件的解密装置的结构示意图。所述Shader文件的解密装置配置于客户端侧,参照图4,本发明实施例的Shader文件的解密装置具体包括获取模块401、提取模块402、判定模块403、解密模块404以及客户端编码模块405,其中:
获取模块401,用于从客户端程序的主程序中获取配置关系列表,所述配置关系列表中包括Shader文件与对应的加密算法和所分布的DLL文件之间的对应关系,以及加密循环规则和至少一个Shader文件的加密KEY值;
提取模块402,用于从所述配置关系列表中查找待执行Shader文件所分布的DLL文件,并从对应的DLL文件中提取加密后的Shader文件;
判定模块403,用于根据所述加密循环规则确定与所述待执行Shader文件具有映射关系的编码值所对应的目标Shader文件,所述目标Shader文件的编码值为所述待执行Shader文件的加密KEY值;
解密模块404,用于根据所述至少一个Shader文件的加密KEY值按照所述加密循环规则依次进行Shader文件解密,得到解密后的目标Shader文件;
客户端编码模块405,用于获取所述目标Shader文件的编码值;
所述解密模块404,还用于从所述配置关系列表中查找所述待执行Shader文件对应的加密算法,并根据所述加密算法对应的解密算法和所述目标Shader文件的编码值对提取的加密后的Shader文件进行解密,得到待执行Shader文件。
本发明实施例提供的Shader文件的解密装置,当客户端启动后,需要执行Shader文件的代码时,则从DLL文件中读取Shader文件的加密数据,然后进行解密得到Shader文件,从而极好的起到了隐藏Shader文件的目的,使得黑客或者第三方无法轻易的获取到shader文件,实现了Shader文件的保护。
而且,本发明实施例通过对各个Shader文件的加密过程进行关联,只有解密了第一个Shader文件才能够解密第二个Shader文件,只有解密了第二个Shader文件才能解密第三个Shader文件,从而产生一种依赖解密,进一步提高黑客或者第三方的破解门槛。
对于装置实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
本发明实施例提供的Shader文件的加密方法、装置及解密方法、装置,通过将客户端需要使用的多个Shader文件分别进行加密,然后将其分布到不同的程序组件DLL文件中,从而将核心的Shader文件的加密数据存储到客户端程序的组件中,并且随组件一起发布。而当客户端启动后,需要执行Shader文件的代码时,则从DLL文件中读取Shader文件的加密数据,然后进行解密得到Shader文件,从而极好的起到了隐藏Shader文件的目的,使得黑客或者第三方无法轻易的获取到shader文件,实现了Shader文件的保护。
此外,本发明实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如图1所示实施例所述方法的步骤或如图2所示实施例所述方法的步骤。
本实施例中,所述Shader文件的加密装置集成的模块/单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明实现上述实施例方法中的全部或部分流程,也可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一计算机可读存储介质中,该计算机程序在被处理器执行时,可实现上述各个方法实施例的步骤。其中,所述计算机程序包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机可读介质可以包括:能够携带所述计算机程序代码的任何实体或装置、记录介质、U盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、电载波信号、电信信号以及软件分发介质等。需要说明的是,所述计算机可读介质包含的内容可以根据司法管辖区内立法和专利实践的要求进行适当的增减,例如在某些司法管辖区,根据立法和专利实践,计算机可读介质不包括电载波信号和电信信号。
本实施例中,所述Shader文件的解密装置集成的模块/单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明实现上述实施例方法中的全部或部分流程,也可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一计算机可读存储介质中,该计算机程序在被处理器执行时,可实现上述各个方法实施例的步骤。其中,所述计算机程序包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机可读介质可以包括:能够携带所述计算机程序代码的任何实体或装置、记录介质、U盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、电载波信号、电信信号以及软件分发介质等。需要说明的是,所述计算机可读介质包含的内容可以根据司法管辖区内立法和专利实践的要求进行适当的增减,例如在某些司法管辖区,根据立法和专利实践,计算机可读介质不包括电载波信号和电信信号。
图5为本发明实施例提供的计算机设备的示意图。本发明实施例提供的计算机设备,包括存储器501、处理器502及存储在存储器501上并可在处理器502上运行的计算机程序,所述处理器502执行所述计算机程序时实现上述Shader文件的加密方法实施例中的步骤,例如图1所示的步骤,或上述Shader文件的解密方法实施例中的步骤,例如图2所示的步骤。或者,所述处理器502执行所述计算机程序时实现上述Shader文件的加密装置实施例中各模块/单元的功能,例如图3所示的服务器编码模块301、关系建立模块302、加密模块303、分布模块304、配置模块305以及添加模块306,或,上述Shader文件的解密装置实施例中各模块/单元的功能,例如图4所示的获取模块401、提取模块402、判定模块403、解密模块404以及客户端编码模块405。
示例性的,所述计算机程序可以被分割成一个或多个模块/单元,所述一个或者多个模块/单元被存储在所述存储器中,并由所述处理器执行,以完成本发明。所述一个或多个模块/单元可以是能够完成特定功能的一系列计算机程序指令段,该指令段用于描述所述计算机程序在所述Shader文件的加密装置或所述Shader文件的解密装置中的执行过程。
所述计算机设备可以是桌上型计算机、笔记本、掌上电脑及云端服务器等计算设备。所述计算机设备可包括,但不仅限于,处理器、存储器。本领域技术人员可以理解,所述示意图5仅仅是计算机设备的示例,并不构成对计算机设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件,例如所述计算机设备还可以包括输入输出设备、网络接入设备、总线等。
所称处理器可以是中央处理单元(Central Processing Unit,CPU),还可以是其他通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现成可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等,所述处理器是所述计算机设备的控制中心,利用各种接口和线路连接整个计算机设备的各个部分。
所述存储器可用于存储所述计算机程序和/或模块,所述处理器通过运行或执行存储在所述存储器内的计算机程序和/或模块,以及调用存储在存储器内的数据,实现所述计算机设备的各种功能。所述存储器可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序(比如声音播放功能、图像播放功能等)等;存储数据区可存储根据手机的使用所创建的数据(比如音频数据、电话本等)等。此外,存储器可以包括高速随机存取存储器,还可以包括非易失性存储器,例如硬盘、内存、插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(Flash Card)、至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。
本领域的技术人员能够理解,尽管在此的一些实施例包括其它实施例中所包括的某些特征而不是其它特征,但是不同实施例的特征的组合意味着处于本发明的范围之内并且形成不同的实施例。例如,在下面的权利要求书中,所要求保护的实施例的任意之一都可以以任意的组合方式来使用。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。

Claims (10)

1.一种Shader文件的加密方法,其特征在于,包括:
对客户端程序对应的各个Shader文件进行排序,依次获取各个Shader文件的编码值;
根据预设的加密循环规则建立编码值与Shader文件之间的映射关系;
将与每一Shader文件具有映射关系的编码值作为该Shader文件的加密KEY值,并采用得到的加密KEY值对相应的Shader文件进行加密;
将各个加密后的Shader文件分布到客户端程序的不同DLL文件中;
生成配置关系列表,所述配置关系列表中包括Shader文件与对应的加密算法和所分布的DLL文件之间的对应关系,以及加密循环规则和至少一个Shader文件的加密KEY值;
将所述配置关系列表添加到所述客户端程序的主程序中,并随所述客户端程序进行发布。
2.根据权利要求1所述的方法,其特征在于,所述采用得到的加密KEY值对相应的Shader文件进行加密包括:
采用不用的加密算法分别根据每一Shader文件的加密KEY值对各个Shader文件进行加密。
3.根据权利要求1所述的方法,其特征在于,所述将各个加密后的Shader文件分布到客户端程序的不同DLL文件中包括:
根据预设对应关系将各个加密后的Shader文件分别分布到客户端程序的指定DLL文件中,或采取随机原则将各个加密后的Shader文件分布到客户端程序的不同DLL文件中。
4.根据权利要求1-3任一项所述的方法,其特征在于,所述将各个加密后的Shader文件分布到客户端程序的不同DLL文件中包括:
在所述DLL文件中增加全局变量,所述全局变量用于存储加密后的Shader文件。
5.一种Shader文件的解密方法,其特征在于,包括:
从客户端程序的主程序中获取配置关系列表,所述配置关系列表中包括Shader文件与对应的加密算法和所分布的DLL文件之间的对应关系,以及加密循环规则和至少一个Shader文件的加密KEY值;
从所述配置关系列表中查找待执行Shader文件所分布的DLL文件,并从对应的DLL文件中获取加密后的Shader文件;
根据所述加密循环规则确定与所述待执行Shader文件具有映射关系的编码值所对应的目标Shader文件,所述目标Shader文件的编码值为所述待执行Shader文件的加密KEY值;
根据所述至少一个Shader文件的加密KEY值按照所述加密循环规则依次进行Shader文件解密,得到解密后的目标Shader文件;
获取所述目标Shader文件的编码值;
从所述配置关系列表中查找所述待执行Shader文件对应的加密算法,并根据所述加密算法对应的解密算法和所述目标Shader文件的编码值对获取的加密后的Shader文件进行解密,得到待执行Shader文件。
6.一种Shader文件的加密装置,其特征在于,包括:
服务端编码模块,用于对客户端程序对应的各个Shader文件进行排序,依次获取各个Shader文件的编码值;
关系建立模块,用于根据预设的加密循环规则建立编码值与Shader文件之间的映射关系;
加密模块,用于将与每一Shader文件具有映射关系的编码值作为该Shader文件的加密KEY值,并采用得到的加密KEY值对相应的Shader文件进行加密;
分布模块,用于将各个加密后的Shader文件分布到客户端程序的不同DLL文件中;
配置模块,用于生成配置关系列表,所述配置关系列表中包括Shader文件与对应的加密算法和所分布的DLL文件之间的对应关系,以及加密循环规则和至少一个Shader文件的加密KEY值;
添加模块,用于将所述配置关系列表添加到所述客户端程序的主程序中,并随所述客户端程序进行发布。
7.根据权利要求6所述的装置,其特征在于,所述加密模块,具体用于采用不用的加密算法分别根据每一Shader文件的加密KEY值对各个Shader文件进行加密。
8.一种Shader文件的解密装置,其特征在于,包括:
获取模块,用于从客户端程序的主程序中获取配置关系列表,所述配置关系列表中包括Shader文件与对应的加密算法和所分布的DLL文件之间的对应关系,以及加密循环规则和至少一个Shader文件的加密KEY值;
提取模块,用于从所述配置关系列表中查找待执行Shader文件所分布的DLL文件,并从对应的DLL文件中提取加密后的Shader文件;
判定模块,用于根据所述加密循环规则确定与所述待执行Shader文件具有映射关系的编码值所对应的目标Shader文件,所述目标Shader文件的编码值为所述待执行Shader文件的加密KEY值;
解密模块,用于根据所述至少一个Shader文件的加密KEY值按照所述加密循环规则依次进行Shader文件解密,得到解密后的目标Shader文件;
客户端编码模块,用于获取所述目标Shader文件的编码值;
所述解密模块,还用于从所述配置关系列表中查找所述待执行Shader文件对应的加密算法,并根据所述加密算法对应的解密算法和所述目标Shader文件的编码值对提取的加密后的Shader文件进行解密,得到待执行Shader文件。
9.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现如权利要求1-4任一项所述方法或权利要求5所述方法的步骤。
10.一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现如权利要求1-4任一项所述方法或权利要求5所述方法的步骤。
CN201810029006.XA 2018-01-12 2018-01-12 Shader文件的加密方法、装置及解密方法、装置 Active CN108256343B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201810029006.XA CN108256343B (zh) 2018-01-12 2018-01-12 Shader文件的加密方法、装置及解密方法、装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201810029006.XA CN108256343B (zh) 2018-01-12 2018-01-12 Shader文件的加密方法、装置及解密方法、装置

Publications (2)

Publication Number Publication Date
CN108256343A true CN108256343A (zh) 2018-07-06
CN108256343B CN108256343B (zh) 2020-05-12

Family

ID=62726626

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201810029006.XA Active CN108256343B (zh) 2018-01-12 2018-01-12 Shader文件的加密方法、装置及解密方法、装置

Country Status (1)

Country Link
CN (1) CN108256343B (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110377276A (zh) * 2019-07-19 2019-10-25 潍柴动力股份有限公司 源代码文件管理方法及设备
CN111228819A (zh) * 2019-12-30 2020-06-05 广东趣炫网络股份有限公司 一种保护Shader的方法、装置和设备
WO2023050829A1 (zh) * 2021-09-29 2023-04-06 北京百度网讯科技有限公司 视频帧处理方法、装置、电子设备以及存储介质

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20150222426A1 (en) * 2012-05-29 2015-08-06 Filippo Vernia Method and System for Transferring Firmware or Software to a Plurality of Devices
CN105282206A (zh) * 2014-07-25 2016-01-27 北京联嘉众赢网络技术有限公司 网站资源文件的处理方法、装置和系统
CN106022014A (zh) * 2016-05-16 2016-10-12 武汉斗鱼网络科技有限公司 一种资源文件的打包方法和解包方法
CN107070656A (zh) * 2017-03-31 2017-08-18 武汉斗鱼网络科技有限公司 一种应用程序中so文件的加密方法、解密方法和系统

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20150222426A1 (en) * 2012-05-29 2015-08-06 Filippo Vernia Method and System for Transferring Firmware or Software to a Plurality of Devices
CN105282206A (zh) * 2014-07-25 2016-01-27 北京联嘉众赢网络技术有限公司 网站资源文件的处理方法、装置和系统
CN106022014A (zh) * 2016-05-16 2016-10-12 武汉斗鱼网络科技有限公司 一种资源文件的打包方法和解包方法
CN107070656A (zh) * 2017-03-31 2017-08-18 武汉斗鱼网络科技有限公司 一种应用程序中so文件的加密方法、解密方法和系统

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110377276A (zh) * 2019-07-19 2019-10-25 潍柴动力股份有限公司 源代码文件管理方法及设备
CN110377276B (zh) * 2019-07-19 2023-05-23 潍柴动力股份有限公司 源代码文件管理方法及设备
CN111228819A (zh) * 2019-12-30 2020-06-05 广东趣炫网络股份有限公司 一种保护Shader的方法、装置和设备
WO2023050829A1 (zh) * 2021-09-29 2023-04-06 北京百度网讯科技有限公司 视频帧处理方法、装置、电子设备以及存储介质

Also Published As

Publication number Publication date
CN108256343B (zh) 2020-05-12

Similar Documents

Publication Publication Date Title
CN108259171B (zh) Shader文件的保护方法及装置
CN109784931B (zh) 一种基于区块链的数据查询平台的查询方法
CN101340279B (zh) 数据加密及解密方法、系统及设备
CN105245328B (zh) 一种基于第三方的用户及文件的密钥产生管理方法
CN109040090A (zh) 一种数据加密方法及装置
CN108848058A (zh) 智能合约处理方法及区块链系统
US11770370B2 (en) System and method for transferring data
CN107612683B (zh) 一种加解密方法、装置、系统、设备和存储介质
CN106817358B (zh) 一种用户资源的加密、解密方法和设备
CN109672521B (zh) 基于国密加密引擎实现的安全存储系统和方法
CN107306254B (zh) 基于双层加密的数字版权保护方法及系统
US11012722B2 (en) System and method for securely transferring data
CN103716330A (zh) 一种数字内容加密与解密方法和设备
JP6904916B2 (ja) 情報処理方法及び情報処理システム
CN113572604B (zh) 一种发送密钥的方法、装置、系统及电子设备
US20200356641A1 (en) Method of and system for providing access to access restricted content to a user
CN108256343A (zh) Shader文件的加密方法、装置及解密方法、装置
CN107395620A (zh) 一种基于随机字节映射的网络传输加密解密方法
CN108256342A (zh) Shader文件的加密方法、装置及解密方法、装置
CN102135944A (zh) 一种在移动通讯设备中安全存储数据的方法
KR102050882B1 (ko) 스트림 암호 기반의 제로-워터마킹을 이용한 영상 보안 방법, 서버 및 컴퓨터 판독 가능한 기록 매체
CN108055356A (zh) 一种信息处理方法、服务器、客户端及可读存储介质
CN113079002B (zh) 数据加密方法、解密方法、密钥管理方法、介质和设备
CN104794243B (zh) 基于文件名的第三方密文检索方法
CN113726515A (zh) 一种基于ukey的密钥处理方法、存储介质及电子设备

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