Shader文件的保护方法及装置与流程

文档序号:14879014发布日期:2018-07-07 09:14阅读:320来源:国知局

本发明涉及计算机网络技术领域,尤其涉及一种shader文件的保护方法及装置。



背景技术:

目前,随着移动端互联网的发展,直播网站也越来越受到大家的喜爱。直播平台会给主播提供直播客户端,为了让主播的展现更美观、漂亮,直播客户端会提供各种美颜的效果,例如,磨皮的效果,从而去除脸上的斑点,还例如,各种滤镜的效果,从而可以显示不同的场景的效果。

现有技术中,直播客户端针对这些核心的美颜效果都是通过编写gpu(graphicsprocessingunit,图形处理器)的shader程序(即着色程序)实现,而shader文件存储的是gpu执行的shader代码,其文件存储的则是源代码,如果shader文件被第三方或者其他人获得,则可以直接使用以完成同样的功能或是对shader代码进行恶意修改。因此,如何对shader文件进行保护,防止其被第三方平台或者黑客所盗取或恶意修改具有重要意义。



技术实现要素:

鉴于上述问题,提出了本发明以便提供一种克服上述问题或者至少部分地解决上述问题的shader文件的保护方法及装置。

本发明的一个方面,提供了一种shader文件的保护方法,包括:

发送文件获取请求消息至服务器,所述文件获取请求消息中携带有用户登录信息和待获取shader文件的文件标识,以供所述服务器根据所述文件标识查找所述shader文件,并根据所述用户登录信息对查找到的shader文件进行加密;

接收所述服务器返回的shader加密文件以及所采用加密算法的算法标识;

根据所述算法标识确定与所述加密算法对应的解密算法,并根据所述解密算法以及所述用户登录信息对所述shader加密文件进行解密。

可选地,在所述根据所述解密算法以及所述用户登录信息对所述shader加密文件进行解密之后,所述方法还包括:

执行解密后的shader文件,并在执行完成后删除所述shader文件。

可选地,在用户进行登录认证后,所述方法还包括:

接收所述服务器发送的服务器公钥,所述服务器公钥是根据服务器私钥生成的,所述服务器私钥是根据所述用户登录信息和服务器随机产生的第一随机数据生成的服务器私钥生成的;以及

根据客户端随机产生的第二随机数据生成客户端私钥,并根据所述客户端私钥生成客户端公钥;

根据所述服务器公钥和所述客户端公钥生成共享密钥。

可选地,在用户进行登录认证时,所述方法还包括:

接收所述服务器返回的token值;

相应的,所述根据所述解密算法以及所述用户登录信息对所述shader加密文件进行解密,包括:

根据所述token值、所述shader文件的文件标识以及所述共享密钥生成解密算法的key值;

根据所述解密算法和所述key值对所述shader加密文件进行解密。

本发明的一个方面,提供了另一种shader文件的保护方法,包括:

接收客户端发送的文件获取请求,所述文件获取请求消息中携带有用户登录信息和待获取shader文件的文件标识;

根据所述文件标识查找所述shader文件,并根据所述用户登录信息对查找到的shader文件进行加密;

将加密后的shader加密文件以及所采用加密算法的算法标识发送到所述客户端,以供所述客户端根据所述算法标识确定与所述加密算法对应的解密算法,并根据所述解密算法以及所述用户登录信息对所述shader加密文件进行解密。

可选地,在所述接收客户端发送的文件获取请求之后,所述方法还包括:

根据服务器随机产生的第一随机数据和所述用户登录信息生成服务器私钥;

根据所述服务器私钥生成服务器公钥,并将所述服务器公钥发送到所述客户端;

接收所述客户端返回的客户端公钥,并根据所述服务器公钥和所述客户端公钥生成共享密钥。

可选地,在用户进行登录认证时,所述方法还包括:

生成登录认证对应的token值;

相应的,所述根据所述用户登录信息对查找到的shader文件进行加密,包括:

根据所述token值、所述shader文件的文件标识以及所述共享密钥生成加密算法的key值;

根据所述key值采用加密算法对查找到的shader文件进行加密。

本发明的一个方面,提供了一种shader文件的保护装置,包括:

客户端发送模块,用于发送文件获取请求消息至服务器,所述文件获取请求消息中携带有用户登录信息和待获取shader文件的文件标识,以供所述服务器根据所述文件标识查找所述shader文件,并根据所述用户登录信息对查找到的shader文件进行加密;

客户端接收模块,用于接收所述服务器返回的shader加密文件以及所采用加密算法的算法标识;

客户端解密模块,用于根据所述算法标识确定与所述加密算法对应的解密算法,并根据所述解密算法以及所述用户登录信息对所述shader加密文件进行解密。

本发明的一个方面,提供了另一种shader文件的保护装置,包括:

服务器接收模块,用于接收客户端发送的文件获取请求,所述文件获取请求消息中携带有用户登录信息和待获取shader文件的文件标识;

服务器加密模块,用于根据所述文件标识查找所述shader文件,并根据所述用户登录信息对查找到的shader文件进行加密;

服务器发送模块,用于将加密后的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文件,并根据所述用户登录信息对查找到的shader文件进行加密。

在一个具体实施了中,所述服务器可以为直播客户端的服务器。实际应用中,客户端会提供各种美颜的效果,针对这些美颜效果都是通过编写gpu的shader程序,而shader文件是存储gpu执行的shader程序代码的文件。

步骤s12、接收所述服务器返回的shader加密文件以及所采用加密算法的算法标识。

在本发明实施例中,服务器和客户端都可以集成多套加解密算法,服务器则集成加密算法,客户端则集成解密算法。由于解密算法必须和加密算法进行配套,所以本发明实施例对加解密算法进行编号,以得到算法标识,从而服务器使用某个编号的加密算法来加密,客户端则使用该编号的解密算法。

在一个具体实施例中,服务器集成了3套加密算法,分别是:tea加密算法,des加密算法,aes加密算法。则分别编号为tea为加密算法1,des为加密算法2,aes为加密算法3。

步骤s13、根据所述算法标识确定与所述加密算法对应的解密算法,并根据所述解密算法以及所述用户登录信息对所述shader加密文件进行解密。

由于shader文件本身并不大,因此本发明实施例提供的shader文件的保护方法,通过将客户端需要使用的shader文件存放到服务器,而当客户端需要时,则服务器将shader文件按照客户端的个人信息进行加密后下方给客户端,客户端收到shader文件后,依据个人信息来解密得到shader文件,从而在客户端发布软件中并不会有shader文件存在,并且只会在程序内存中需要执行的时候才存在,使得黑客或者第三方无法轻易的获取到shader文件,实现了shader文件的保护。

进一步地,在根据所述解密算法以及所述用户登录信息对所述shader加密文件进行解密得到解密后的shader文件之后,执行所述解密后的shader文件,并在执行完成后删除所述shader文件。

本发明实施例中,当客户端依据用户登录时的个人信息来解密shader加密文件并执行解密后的shader文件,执行完成后则将解密的shader文件从内存删除掉,从而在客户端发布软件中并不会有shader文件存在,并且其只会在程序内存中需要执行的时候才存在,使得黑客或者第三方无法轻易的获取到shader文件,有效实现shader文件的保护。

在一个具体实施例中,在用户进行登录认证后,所述方法还包括以下步骤:

接收所述服务器发送的服务器公钥,所述服务器公钥是根据服务器私钥生成的,所述服务器私钥是根据所述用户登录信息和服务器随机产生的第一随机数据生成的服务器私钥生成的;以及

根据客户端随机产生的第二随机数据生成客户端私钥,并根据所述客户端私钥生成客户端公钥;

根据所述服务器公钥和所述客户端公钥生成共享密钥。

在本发明实施例中,客户端登录时会生成一对秘钥。具体的,当客户端每次登陆直播平台时,则会生成一对客户端公钥和客户端私钥信息。每次登陆则都会重新生成一对秘钥,以保障客户端每次登陆秘钥都不一样,从而提高整个数据传输的安全性。而且,本发明实施例使用客户端随机产生的随机数据的md5值作为客户端私钥,进一步可以保障每次的客户端私钥是不一样的。

本发明实施例中采用非对称算法计算客户端秘钥。在一个具体实施例中,可以采用非对称rsa加密算法来生成客户端的一对公钥和私钥。具体的,客户端私钥可以使用随机数生成,公钥则可以调用rsa的接口函数生成对应的公钥,私钥和公钥是唯一配对的关系。具体实现如下:

1.生成随机数据

randdata=rand();

通过调用系统函数rand来生成一段随机数据randdata。

2.依据随机数生成其md5值做为私钥。

clientprivatekey=md5.create(randdata)

通过调用md5函数的接口md5.create来对随机数据计算其md5值,从而得到了私钥数据。

3.计算公钥。

clientpublickey=rsa.createpair(clientprivatekey);

公钥则调用rsa的生成配对钥匙接口rsa.createpair来生成。

最终客户端生成了一对公钥和私钥信息,实现了客户端登陆直播平台都生成一对私钥和公钥信息。

在客户端生成了一对公钥和私钥信息之后,服务器和客户端互换公钥并生成共享秘钥。

本发明实施例中,服务器和客户端会交换各自的公钥信息,来生成一个共享的秘钥,即共享密钥,并且客户端和服务器生成的共享秘钥是同一个值。具体实现如下:

1.互换公钥。

服务器将服务器的公钥serverpublickey发送给客户端。

客户端将客户端的公钥clientpublickey发送给服务器。

2.客户端生成共享秘钥。

sharekey=rsa.createsharekey(serverpublickey,clientprivatekey);

3.服务器生成共享秘钥。

sharekey=rsa.createsharekey(clientpublickey,serverprivatekey);

客户端生成共享秘钥和服务器生成共享秘钥的值是一致的,至此完成了客户端和服务器的共享秘钥的生成。

在本发明实施例中,只有在用户进行登录认证后,服务器才会下发加密后的shader加密文件以及服务器公钥,以便客户端根据服务器公钥和客户端公钥生成共享密钥,以实现后续对shader加密文件的解密,从而使得黑客必须进行账号登录才能获取shader文件,提高shader文件的破解门槛。

进一步地,在用户进行登录认证时,所述方法还包括:

接收所述服务器返回的token值;

相应的,所述根据所述解密算法以及所述用户登录信息对所述shader加密文件进行解密,包括:

根据所述token值、所述shader文件的文件标识以及所述共享密钥生成解密算法的key值;

根据所述解密算法和所述key值对所述shader加密文件进行解密。

在一个具体实施例中,服务器对每个客户端请求shader文件时,对每个shader使用不同的加密算法进行加密。

当客户端需要使用shader文件时,则从服务器请求shader文件,客户端的请求中则包括需要的shader文件的文件标识,例如名称信息,服务器收到请求信息后,则从现有的加密算法中挑选一种加密算法来对shader文件进行加密,其中加密算法使用的key值则是依据共享密钥、shader文件的文件标识和客户端登陆时服务器下发的token值一起计算md5得到的key值。本实施例中,以shader文件的名称信息作为文件标识,具体实现如下:

1.客户端请求服务器需要使用的shader文件名称。

当客户端执行时,需要使用shader文件来实现客户端的美颜功能时,则向服务器请求该shader文件,假设请求的文件名称是beauty1.shader。

2.服务器接收请求计算加密时的key值。

当服务器接收到客户端的请求后,则首先计算对shader文件进行加密时使用的key值。具体计算如下:

key=md5.create(sharekey+token+“beauty1.shader”);

具体则是将得到的共享密钥sharekey和客户端登陆服务器时下发的token值和请求的shader文件名称一起拼接到一起计算一个md5值。从而得到最终进行加密时的key值。

3.服务器读取客户端需要的shader文件。

首先读取每个独立的shader文件,将整个文件的内容读取到内存中。本发明实施例中可以使用系统函数fopen和fread来读取文件。

file*pfile=fopen("beauty1.shader","rb");

通过调用系统函数fopen来打开一个文件。

其中参数1是打开的文件名称。

其中参数2则是以二进制的方式来打开文件。

返回值则是文件的句柄pfile。

fseek(pfile,0,seek_end);

通过调用fseek函数则将文件的读取指针移动到文件尾部。

longsize=ftell(pfile);

通过调用系统函数ftell则得到shader文件的大小size。

char*buffer=(char*)malloc(size);

调用系统函数malloc来分配一段内存,分配大小则是shader文件的大小。

fread(buffer,1,size,pfile);

调用系统函数fread来读取整个文件内容到分配的内存中。

fclose(pfile);

调用系统函数fclose来关闭文件句柄。

从而将整个shader文件的内容读取到了分配的内存中。

4.服务器挑选加密算法来对shader文件进行加密。

首先服务器会从现有的加密算法中挑选一种加密算法来对shader文件进行加密。挑选策略可以是依据shader文件的大小,来选择加密算法快的加密算法,服务器也可以使用随机算法来从现有的加密算法中随机选择一种加密算法。

具体的,本发明实施例中则使用加密算法tea来加密。

encryptbuff=tea.encrypt(buffer,size,key);

其中加密算法则是tea.encrypt。

其中参数buffer则是步骤3读取的shader的内容,其中size则是其大小。

其中参数key则是步骤2计算得到的key值。

最终得到加密后的结果encryptbuff,至此就完成了服务器对客户端请求的shader文件进行加密。

服务器加密完成后,则将加密后的shader内容通过网络下发给客户端,客户端收到后则再对其进行解密。服务器可以使用与客户端的长连接网络来下发,也可以使用短链接来下发,当然服务器也可以是将加密内容隐藏到现有其他协议中下发,对此本发明不做具体限定。其中,服务器下发的内容包括加密后的shader文件,还包括服务器选择的加密算法的算法标识,即本实施例中的算法序号。

当客户端收到服务器下发的加密后的shader内容后,则依次计算解密时的key值和对shader进行解密。具体实现如下:

客户端首先计算解密时需要的key值。

key=md5.create(sharekey+token+“beauty1.shader”);

具体的,将计算得到的sharekey和客户端登陆服务器时下发的token值和请求的shader文件名称一起拼接到一起计算一个md5值。从而得到最终进行加密时的key值。此算法则和服务器加密时计算key的方法一致。

解密shader加密文件。

服务器下发的加密内容,同时还下发了加密时选择的加密算法的序号,客户端则使用对应的序号来选择解密算法。

buffer=tea.decrypt(encryptbuff,size,key);

tea.decrypt则是tea的解密算法接口。

从而最终得到解密后的shader文件内容,至此就完成了对服务器下发shader文件内容的解密。

当客户端解密得到原始的shader文件内容后,则可以执行对应的shader的功能,执行完成后,则需要将内存中解密的shader文件的buff进行删除,以保障不在内存中保存解密的shader内容,从而只有需要执行shader时才在内存中有解密的shader内容。

图2示意性示出了本发明一个实施例的shader文件的保护方法的流程图。所述的shader文件的保护方法由服务器侧执行。参照图2,本发明实施例的shader文件的保护方法具体包括以下步骤:

步骤s21、接收客户端发送的文件获取请求,所述文件获取请求消息中携带有用户登录信息和待获取shader文件的文件标识。

步骤s22、根据所述文件标识查找所述shader文件,并根据所述用户登录信息对查找到的shader文件进行加密。

步骤s23、将加密后的shader加密文件以及所采用加密算法的算法标识发送到所述客户端,以供所述客户端根据所述算法标识确定与所述加密算法对应的解密算法,并根据所述解密算法以及所述用户登录信息对所述shader加密文件进行解密。

在本发明实施例中,服务器和客户端都可以集成多套加解密算法,服务器则集成加密算法,客户端则集成解密算法。由于解密算法必须和加密算法进行配套,所以本发明实施例对加解密算法进行编号,以得到算法标识,从而服务器使用某个编号的加密算法来加密,客户端则使用该编号的解密算法。

在一个具体实施例中,服务器集成了3套加密算法,分别是:tea加密算法,des加密算法,aes加密算法。则分别编号为tea为加密算法1,des为加密算法2,aes为加密算法3。

由于shader文件本身并不大,因此本发明实施例提供的shader文件的保护方法,通过将客户端需要使用的shader文件存放到服务器,而当客户端需要时,则服务器将shader文件按照客户端的个人信息进行加密后下方给客户端,客户端收到shader后,依据个人信息来解密得到shader文件,从而在客户端发布软件中并不会有shader文件存在,并且只会在程序内存中需要执行的时候才存在,使得黑客或者第三方无法轻易的获取到shader文件,实现了shader文件的保护。

进一步地,在所述接收客户端发送的文件获取请求之后,所述方法还包括以下步骤:

根据服务器随机产生的第一随机数据和所述用户登录信息生成服务器私钥;

根据所述服务器私钥生成服务器公钥,并将所述服务器公钥发送到所述客户端;

接收所述客户端返回的客户端公钥,并根据所述服务器公钥和所述客户端公钥生成共享密钥。

在本发明实施例中,服务器对每个客户端会生成一对公钥私钥信息。本实施中,服务器会依照客户端的方式也来生成一对公钥和私钥信息。服务器的生成则也会依据用户的uid以及随机数据来生成私钥,从而尽可能保障不同客户端不同房间的私钥不一样。本实施例中将用户的uid作为用户登录信息,具体实现如下:

1.生成随机数据

randdata=rand();

通过调用系统函数rand来生成一段随机数据randdata。

2.依据uid和随机数生成其md5值做为私钥。

serverprivatekey=md5.create(randdata+uid)

通过调用md5函数的接口md5.create来对随机数据和用户的uid拼接到一起计算其md5值,从而得到了私钥数据。

3.计算公钥。

serverpublickey=rsa.createpair(serverprivatekey);

公钥则调用rsa的生成配对钥匙接口rsa.createpair来生成。

从而最终客户端则生成了一对公钥和私钥信息,至此就实现了服务器对每个客户端生成一个公钥和私钥信息。

可选地,在用户进行登录认证时,所述方法还包括:

生成登录认证对应的token值;

相应的,所述根据所述用户登录信息对查找到的shader文件进行加密,包括:

根据所述token值、所述shader文件的文件标识以及所述共享密钥生成加密算法的key值;

根据所述key值采用加密算法对查找到的shader文件进行加密。

在一个具体实施例中,服务器对每个客户端请求shader文件时,对每个shader使用不同的加密算法进行加密。

当客户端需要使用shader文件时,则从服务器请求shader文件,客户端的请求中则包括需要的shader文件的文件标识,例如名称信息,服务器收到请求信息后,则从现有的加密算法中挑选一种加密算法来对shader文件进行加密,其中加密算法使用的key值则是依据共享密钥、shader文件的文件标识和客户端登陆时服务器下发的token值一起计算md5得到的key值。本实施例中,以shader文件的名称信息作为文件标识,具体实现如下:

1.客户端请求服务器需要使用的shader文件名称。

当客户端执行时,需要使用shader文件来实现客户端的美颜功能时,则向服务器请求该shader文件,假设请求的文件名称是beauty1.shader。

2.服务器接收请求计算加密时的key值。

当服务器接收到客户端的请求后,则首先计算对shader文件进行加密时使用的key值。具体计算如下:

key=md5.create(sharekey+token+“beauty1.shader”);

具体则是将得到的共享密钥sharekey和客户端登陆服务器时下发的token值和请求的shader文件名称一起拼接到一起计算一个md5值。从而得到最终进行加密时的key值。

3.服务器读取客户端需要的shader文件。

首先读取每个独立的shader文件,将整个文件的内容读取到内存中。本发明实施例中可以使用系统函数fopen和fread来读取文件。

file*pfile=fopen("beauty1.shader","rb");

通过调用系统函数fopen来打开一个文件。

其中参数1是打开的文件名称。

其中参数2则是以二进制的方式来打开文件。

返回值则是文件的句柄pfile。

fseek(pfile,0,seek_end);

通过调用fseek函数则将文件的读取指针移动到文件尾部。

longsize=ftell(pfile);

通过调用系统函数ftell则得到shader文件的大小size。

char*buffer=(char*)malloc(size);

调用系统函数malloc来分配一段内存,分配大小则是shader文件的大小。

fread(buffer,1,size,pfile);

调用系统函数fread来读取整个文件内容到分配的内存中。

fclose(pfile);

调用系统函数fclose来关闭文件句柄。

从而将整个shader文件的内容读取到了分配的内存中。

4.服务器挑选加密算法来对shader文件进行加密。

首先服务器会从现有的加密算法中挑选一种加密算法来对shader文件进行加密。挑选策略可以是依据shader文件的大小,来选择加密算法快的加密算法,服务器也可以使用随机算法来从现有的加密算法中随机选择一种加密算法。

具体的,本发明实施例中则使用加密算法tea来加密。

encryptbuff=tea.encrypt(buffer,size,key);

其中加密算法则是tea.encrypt。

其中参数buffer则是步骤3读取的shader的内容,其中size则是其大小。

其中参数key则是步骤2计算得到的key值。

最终得到加密后的结果encryptbuff,至此就完成了服务器对客户端请求的shader文件进行加密。

服务器加密完成后,则将加密后的shader内容通过网络下发给客户端,客户端收到后则再对其进行解密。服务器可以使用与客户端的长连接网络来下发,也可以使用短链接来下发,当然服务器也可以是将加密内容隐藏到现有其他协议中下发,对此本发明不做具体限定。其中,服务器下发的内容包括加密后的shader文件,还包括服务器选择的加密算法的算法标识,即本实施例中的算法序号。

当客户端收到服务器下发的加密后的shader内容后,则依次计算解密时的key值和对shader进行解密。具体实现如下:

客户端首先计算解密时需要的key值。

key=md5.create(sharekey+token+“beauty1.shader”);

具体的,将计算得到的sharekey和客户端登陆服务器时下发的token值和请求的shader文件名称一起拼接到一起计算一个md5值。从而得到最终进行加密时的key值。此算法则和服务器加密时计算key的方法一致。

解密shader加密文件。

服务器下发的加密内容,同时还下发了加密时选择的加密算法的序号,客户端则使用对应的序号来选择解密算法。

buffer=tea.decrypt(encryptbuff,size,key);

tea.decrypt则是tea的解密算法接口。

从而最终得到解密后的shader文件内容,至此就完成了对服务器下发shader文件内容的解密。

当客户端解密得到原始的shader文件内容后,则可以执行对应的shader的功能,执行完成后,则需要将内存中解密的shader文件的buff进行删除,以保障不在内存中保存解密的shader内容,从而只有需要执行shader时才在内存中有解密的shader内容。

对于方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明实施例并不受所描述的动作顺序的限制,因为依据本发明实施例,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作并不一定是本发明实施例所必须的。

图3示意性示出了本发明一个实施例的shader文件的保护装置的结构示意图。所述shader文件的保护装置配置于客户端侧,参照图3,本发明实施例的shader文件的保护装置具体包括客户端发送模块301、客户端接收模块302以及客户端解密模块303,其中:

客户端发送模块301,用于发送文件获取请求消息至服务器,所述文件获取请求消息中携带有用户登录信息和待获取shader文件的文件标识,以供所述服务器根据所述文件标识查找所述shader文件,并根据所述用户登录信息对查找到的shader文件进行加密;

客户端接收模块302,用于接收所述服务器返回的shader加密文件以及所采用加密算法的算法标识;

客户端解密模块303,用于根据所述算法标识确定与所述加密算法对应的解密算法,并根据所述解密算法以及所述用户登录信息对所述shader加密文件进行解密。

本发明实施例提供的shader文件的保护装置,通过将客户端需要使用的shader文件存放到服务器,而当客户端需要时,则服务器将shader文件按照客户端的个人信息进行加密后下方给客户端,客户端收到shader后,依据个人信息来解密得到shader文件,从而在客户端发布软件中并不会有shader文件存在,并且只会在程序内存中需要执行的时候才存在,使得黑客或者第三方无法轻易的获取到shader文件,实现了shader文件的保护。

图4示意性示出了本发明一个实施例的shader文件的保护装置的结构示意图。所述shader文件的保护装置配置于服务器侧,参照图4,本发明实施例的shader文件的保护装置具体包括服务器接收模块401、服务器加密模块402以及服务器发送模块403,其中:

服务器接收模块401,用于接收客户端发送的文件获取请求,所述文件获取请求消息中携带有用户登录信息和待获取shader文件的文件标识;

服务器加密模块402,用于根据所述文件标识查找所述shader文件,并根据所述用户登录信息对查找到的shader文件进行加密;

服务器发送模块403,用于将加密后的shader加密文件以及所采用加密算法的算法标识发送到所述客户端,以供所述客户端根据所述算法标识确定与所述加密算法对应的解密算法,并根据所述解密算法以及所述用户登录信息对所述shader加密文件进行解密。

本发明实施例提供的shader文件的保护装置,通过将客户端需要使用的shader文件存放到服务器,而当客户端需要时,则服务器将shader文件按照客户端的个人信息进行加密后下方给客户端,客户端收到shader后,依据个人信息来解密得到shader文件,从而在客户端发布软件中并不会有shader文件存在,并且只会在程序内存中需要执行的时候才存在,使得黑客或者第三方无法轻易的获取到shader文件,实现了shader文件的保护。

对于装置实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。

以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。

本发明实施例提供的shader文件的保护方法及装置,通过将客户端需要使用的shader文件存放到服务器,而当客户端需要时,则服务器将shader文件按照客户端的个人信息进行加密后下方给客户端,客户端收到shader后,依据个人信息来解密得到shader文件,从而在客户端发布软件中并不会有shader文件存在,并且只会在程序内存中需要执行的时候才存在,使得黑客或者第三方无法轻易的获取到shader文件,实现了shader文件的保护。

此外,本发明实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如图1所示实施例所述方法的步骤或如图2所示实施例所述方法的步骤。

本实施例中,所述shader文件的保护装置集成的模块/单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明实现上述实施例方法中的全部或部分流程,也可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一计算机可读存储介质中,该计算机程序在被处理器执行时,可实现上述各个方法实施例的步骤。其中,所述计算机程序包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机可读介质可以包括:能够携带所述计算机程序代码的任何实体或装置、记录介质、u盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(rom,read-onlymemory)、随机存取存储器(ram,randomaccessmemory)、电载波信号、电信信号以及软件分发介质等。需要说明的是,所述计算机可读介质包含的内容可以根据司法管辖区内立法和专利实践的要求进行适当的增减,例如在某些司法管辖区,根据立法和专利实践,计算机可读介质不包括电载波信号和电信信号。

图5为本发明实施例提供的计算机设备的示意图。本发明实施例提供的计算机设备,包括存储器501、处理器502及存储在存储器501上并可在处理器502上运行的计算机程序,所述处理器502执行所述计算机程序时实现上述shader文件的保护方法实施例中的步骤,例如图1所示的步骤s11、发送文件获取请求消息至服务器,所述文件获取请求消息中携带有用户登录信息和待获取shader文件的文件标识,以供所述服务器根据所述文件标识查找所述shader文件,并根据所述用户登录信息对查找到的shader文件进行加密;步骤s12、接收所述服务器返回的shader加密文件以及所采用加密算法的算法标识;步骤s13、根据所述算法标识确定与所述加密算法对应的解密算法,并根据所述解密算法以及所述用户登录信息对所述shader加密文件进行解密。再例如图2所示的步骤s21、接收客户端发送的文件获取请求,所述文件获取请求消息中携带有用户登录信息和待获取shader文件的文件标识;步骤s22、根据所述文件标识查找所述shader文件,并根据所述用户登录信息对查找到的shader文件进行加密;步骤s23、将加密后的shader加密文件以及所采用加密算法的算法标识发送到所述客户端,以供所述客户端根据所述算法标识确定与所述加密算法对应的解密算法,并根据所述解密算法以及所述用户登录信息对所述shader加密文件进行解密。或者,所述处理器502执行所述计算机程序时实现上述shader文件的保护装置实施例中各模块/单元的功能,例如图3所示的客户端发送模块301、客户端接收模块302以及客户端解密模块303。再例如图4所示的服务器接收模块401、服务器加密模块402以及服务器发送模块403。

示例性的,所述计算机程序可以被分割成一个或多个模块/单元,所述一个或者多个模块/单元被存储在所述存储器中,并由所述处理器执行,以完成本发明。所述一个或多个模块/单元可以是能够完成特定功能的一系列计算机程序指令段,该指令段用于描述所述计算机程序在所述shader文件的保护装置中的执行过程。

所述计算机设备可以是桌上型计算机、笔记本、掌上电脑及云端服务器等计算设备。所述计算机设备可包括,但不仅限于,处理器、存储器。本领域技术人员可以理解,所述示意图5仅仅是计算机设备的示例,并不构成对计算机设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件,例如所述计算机设备还可以包括输入输出设备、网络接入设备、总线等。

所称处理器可以是中央处理单元(centralprocessingunit,cpu),还可以是其他通用处理器、数字信号处理器(digitalsignalprocessor,dsp)、专用集成电路(applicationspecificintegratedcircuit,asic)、现成可编程门阵列(field-programmablegatearray,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等,所述处理器是所述计算机设备的控制中心,利用各种接口和线路连接整个计算机设备的各个部分。

所述存储器可用于存储所述计算机程序和/或模块,所述处理器通过运行或执行存储在所述存储器内的计算机程序和/或模块,以及调用存储在存储器内的数据,实现所述计算机设备的各种功能。所述存储器可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序(比如声音播放功能、图像播放功能等)等;存储数据区可存储根据手机的使用所创建的数据(比如音频数据、电话本等)等。此外,存储器可以包括高速随机存取存储器,还可以包括非易失性存储器,例如硬盘、内存、插接式硬盘,智能存储卡(smartmediacard,smc),安全数字(securedigital,sd)卡,闪存卡(flashcard)、至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。

本领域的技术人员能够理解,尽管在此的一些实施例包括其它实施例中所包括的某些特征而不是其它特征,但是不同实施例的特征的组合意味着处于本发明的范围之内并且形成不同的实施例。例如,在下面的权利要求书中,所要求保护的实施例的任意之一都可以以任意的组合方式来使用。

最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1