CN107169317A - 一种对lua脚本进行加密的方法及装置 - Google Patents

一种对lua脚本进行加密的方法及装置 Download PDF

Info

Publication number
CN107169317A
CN107169317A CN201710206800.2A CN201710206800A CN107169317A CN 107169317 A CN107169317 A CN 107169317A CN 201710206800 A CN201710206800 A CN 201710206800A CN 107169317 A CN107169317 A CN 107169317A
Authority
CN
China
Prior art keywords
lua scripts
encrypted
lua
client
scripts
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.)
Pending
Application number
CN201710206800.2A
Other languages
English (en)
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 CN201710206800.2A priority Critical patent/CN107169317A/zh
Publication of CN107169317A publication Critical patent/CN107169317A/zh
Pending legal-status Critical Current

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/10Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
    • G06F21/12Protecting executable software
    • G06F21/121Restricting unauthorised execution of programs
    • G06F21/125Restricting unauthorised execution of programs by manipulating the program code, e.g. source code, compiled code, interpreted code, machine code
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/10Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
    • G06F21/12Protecting executable software
    • G06F21/14Protecting executable software against software analysis or reverse engineering, e.g. by obfuscation
    • 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/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6209Protecting access to data via a platform, e.g. using keys or access control rules to a single file or object, e.g. in a secure envelope, encrypted and accessed using a key, or with access control rules appended to the object itself
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/04Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
    • H04L63/0428Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
    • H04L63/0442Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload wherein the sending and receiving network entities apply asymmetric encryption, i.e. different keys for encryption and decryption
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/06Network architectures or network communication protocols for network security for supporting key management in a packet data network
    • H04L63/061Network architectures or network communication protocols for network security for supporting key management in a packet data network for key exchange, e.g. in peer-to-peer networks
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/12Applying verification of the received information
    • H04L63/123Applying verification of the received information received data contents, e.g. message integrity
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0861Generation of secret information including derivation or calculation of cryptographic keys or passwords
    • H04L9/0869Generation of secret information including derivation or calculation of cryptographic keys or passwords involving random numbers or seeds
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3236Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Signal Processing (AREA)
  • Technology Law (AREA)
  • Multimedia (AREA)
  • Computing Systems (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • General Health & Medical Sciences (AREA)
  • Storage Device Security (AREA)
  • Computer And Data Communications (AREA)

Abstract

本发明公开了一种对LUA脚本进行加密的方法,包括:获取第一LUA脚本;对所述第一LUA脚本文件进行压缩,获得压缩文件;采用非对称加密算法对所述压缩文件进行加密,获得加密文件。本发明解决了现有技术中LUA脚本容易被反编译,存在严重的信息安全隐患的技术问题。实现了增加LUA脚本被反编译的难度,从而提高了信息安全的技术效果。同时,本发明还公开了一种对LUA脚本进行加密的装置。

Description

一种对LUA脚本进行加密的方法及装置
技术领域
本发明涉及网络直播技术领域,尤其涉及一种对LUA脚本进行加密的方法及装。
背景技术
目前,随着程序软件的发展,编译型语言会做为程序开发的主流语言,而编译型语言的特点是效率高,执行速度快。而其缺点则是每次修改代码都需要重新进行编译,而对于大型程序则编译时间会非常久。
随着程序语言的发展,出现了一些脚本语言,脚本语言是使用虚拟机来执行,从而使得脚本代码发生变更时,不需要重新进行编译,则可以直接运行。所以目前大多数程序采用编译型语言开发程序框架,而将进程变动的部分使用脚本语言来开发。从而既保证了程序执行的效率,同时也使得程序易于更新。尤其是对于游戏程序来说,进程会做各种活动,或者添加一些新的关卡新的玩法等,而会将这部分逻辑使用脚本来开发。
LUA是一个小巧的脚本语言,LUA本可以很容易的被C/C++代码调用,也可以反过来调用C/C++的函数,这使得LUA在应用程序中可以被广泛应用。不仅仅作为扩展脚本,也可以作为普通的配置文件,代替XML、ini等文件格式,并且更容易理解和维护。
随着脚本语言使用的越来越频繁,越来越多的黑客来研究脚本语言。而由于脚本语言是解释性语言,所以其非常容易被反编译,被反编译后非常容易弄清楚其中的逻辑,从而实现一些非法的“外挂”功能。而目前大家都会使用简单的加密算法来对所有的LUA脚本进行加密,在使用时客户端对加密的LUA脚本进行解密。而黑客获取到LUA脚本后,只要弄清楚了一个文件的解密则可以对所有的LUA脚本进行解密,从而可以获取到所有明文的LUA脚本,存在严重的信息安全隐患。
发明内容
本申请实施例通过提供一种对LUA脚本进行加密的方法及装,解决了现有技术中LUA脚本容易被反编译,存在严重的信息安全隐患的技术问题。实现了增加LUA脚本被反编译的难度,从而提高了信息安全的技术效果。
一方面,本申请通过本申请的一实施例提供如下技术方案:
一种对LUA脚本进行加密的方法,包括:
获取第一LUA脚本;
对所述第一LUA脚本文件进行压缩,获得压缩文件;
采用非对称加密算法对所述压缩文件进行加密,获得加密文件。
优选地,所述采用非对称加密算法对所述压缩文件进行加密,获得加密文件,包括:
获取所述第一LUA脚本的文件名,并计算所述第一LUA脚本的文件名的MD5值;
通过随机算法计算至少一个随机数;
基于所述第一LUA脚本的文件名的MD5值和所述随机数,创建私钥,其中,所述私钥中包含所述MD5值和所述随机数;
基于RSA加密算法,将所述私钥计算成公钥;
基于所述公钥对所述压缩文件进行加密,获得所述加密文件。
优选地,所述基于所述公钥对所述压缩文件进行加密,获得所述加密文件之后,还包括:
将所述加密文件发送给客户端。
优选地,所述将所述加密文件发送给客户端之后,还包括:
接收所述客户端发送的用于获取所述私钥的请求;
将所述私钥发送给所述客户端,以使得所述客户端基于所述私钥对所述加密文件进行解密。
优选地,所述将所述私钥发送给所述客户端之前,还包括:
获取所述客户端发送的的身份验证信息;
基于所述身份验证信息,对所述客户端进行身份验证;
若验证通过,则执行所述将所述私钥发送给所述客户端。
优选地,所述将所述私钥发给所述客户端,包括:
将所述私钥加密后发送给所述客户端。
优选地,所述获取第一LUA脚本之后,还包括:
计算所述第一LUA脚本的HASH值;
存储所述第一LUA脚本的HASH值。
优选地,所述采用非对称加密算法对所述压缩文件进行加密,获得加密文件之后,还包括:
接收所述客户端发送的第二LUA脚本的HASH值,所述第二LUA脚本是所述客户端对所述加密文件进行解密以及解压后获得的LUA脚本;
将所述第一LUA脚本的HASH值与所述第二LUA脚本的HASH值进行比对;
若一致,则向所述客户端发送第一指令,以控制所述客户端执行所述第二LUA脚本;
若不一致,则向所述客户端发送第二指令,以禁止所述客户端执行所述第二LUA脚本。
另一方面,本申请通过本申请的一实施例,提供如下技术方案:
一种对LUA脚本进行加密的装置,包括:
第一获取模块,用于获取第一LUA脚本;
压缩模块,用于对所述第一LUA脚本文件进行压缩,获得压缩文件;
加密模块,用于采用非对称加密算法对所述压缩文件进行加密,获得加密文件。
优选地,所述加密模块,包括:
第一计算子模块,用于获取所述第一LUA脚本的文件名,并计算所述第一LUA脚本的文件名的MD5值;
第二计算子模块,用于通过随机算法计算至少一个随机数;
创建子模块,用于基于所述第一LUA脚本的文件名的MD5值和所述随机数,创建私钥,其中,所述私钥中包含所述MD5值和所述随机数;
第三计算子模块,用于基于RSA加密算法,将所述私钥计算成公钥;
加密子模块,用于基于所述公钥对所述压缩文件进行加密,获得所述加密文件。
优选地,所述对LUA脚本进行加密的装置,还包括:
第一发送模块,用于所述基于所述公钥对所述压缩文件进行加密,获得所述加密文件之后,将所述加密文件发送给客户端。
优选地,所述对LUA脚本进行加密的装置,还包括:
第一接收模块,用于所述将所述加密文件发送给客户端之后,接收所述客户端发送的用于获取所述私钥的请求;
第二发送模块,用于将所述私钥发送给所述客户端,以使得所述客户端基于所述私钥对所述加密文件进行解密。
优选地,所述对LUA脚本进行加密的装置,还包括:
第二获取模块,用于所述将所述私钥发送给所述客户端之前,获取所述客户端发送的的身份验证信息;
验证模块,用于基于所述身份验证信息,对所述客户端进行身份验证;若验证通过,则通过所述第二送给模块执行所述将所述私钥发送给所述客户端。
优选地,所述第二发送模块,具体用于:
将所述私钥加密后发送给所述客户端。
优选地,所述对LUA脚本进行加密的装置,还包括:
计算模块,用于所述获取第一LUA脚本之后,计算所述第一LUA脚本的HASH值;
存储模块,用于存储所述第一LUA脚本的HASH值。
优选地,所述对LUA脚本进行加密的装置,还包括:
第二接收模块,用于所述采用非对称加密算法对所述压缩文件进行加密,获得加密文件之后,接收所述客户端发送的第二LUA脚本的HASH值,所述第二LUA脚本是所述客户端对所述加密文件进行解密以及解压后获得的LUA脚本;
比对模块,用于将所述第一LUA脚本的HASH值与所述第二LUA脚本的HASH值进行比对;
第三发送模块,用于若一致,则向所述客户端发送第一指令,以控制所述客户端执行所述第二LUA脚本;若不一致,则向所述客户端发送第二指令,以禁止所述客户端执行所述第二LUA脚本。
本申请实施例中提供的一个或多个技术方案,至少具有如下技术效果或优点:
在本申请实施例中,公开了一种对LUA脚本进行加密的方法,包括:获取第一LUA脚本;对所述第一LUA脚本文件进行压缩,获得压缩文件;采用非对称加密算法对所述压缩文件进行加密,获得加密文件。由于采用了非对称加密算法对第一LUA脚本的压缩文件进行加密,所以解决了现有技术中LUA脚本容易被反编译,存在严重的信息安全隐患的技术问题。实现了增加LUA脚本被反编译的难度,从而提高了信息安全的技术效果。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例中一种对LUA脚本进行加密的方法的流程图;
图2为本申请实施例中一种对LUA脚本进行加密的装置的结构图。
具体实施方式
本申请实施例通过提供一种对LUA脚本进行加密的方法及装,解决了现有技术中LUA脚本容易被反编译,存在严重的信息安全隐患的技术问题。实现了增加LUA脚本被反编译的难度,从而提高了信息安全的技术效果。
本申请实施例的技术方案为解决上述技术问题,总体思路如下:
一种对LUA脚本进行加密的方法,包括:获取第一LUA脚本;对所述第一LUA脚本文件进行压缩,获得压缩文件;采用非对称加密算法对所述压缩文件进行加密,获得加密文件。
为了更好的理解上述技术方案,下面将结合说明书附图以及具体的实施方式对上述技术方案进行详细的说明。
实施例一
本实施例提供了一种对LUA脚本进行加密的方法,应用于服务器中(例如:网络直播平台服务器),该服务器可以与客户端(例如:网络直播客户端)进行数据通信。
在网络直播过程中,服务器会将编写好的LUA脚本下发给客户端,目前会使用简单的加密算法来对所有的LUA脚本进行加密,时客户端再对加密的LUA脚本进行解密。而黑客获取到LUA脚本后,只要弄清楚了一个文件的解密则可以对所有的LUA脚本进行解密,从而可以获取到所有明文的LUA脚本,存在严重的信息安全隐患。
为了提高LUA脚本的安全性,防止被黑客攻击,在本实施例中,采用了一种新的LUA脚本进行加密的方法,如图1所示,所述对LUA脚本进行加密的方法,包括:
步骤S101:获取第一LUA脚本。
在具体实施过程中,第一LUA脚本可以是一个或多个需要进行加密的LUA脚本,服务器可以将需要向客户端发送的每个LUA脚本都作为第一LUA脚本。
步骤S102:对第一LUA脚本文件进行压缩,获得压缩文件。
在具体实施过程中,服务器可以先对第一LUA脚本进行压缩,来减少文件的大小,其中,压缩本身也可以看做是对第一LUA脚本进行了加密。
在具体实施过程中,步骤S102的实现方法如下:
首先,读取第一LUA脚本文件到内存。具体来讲,可以调用系统库函数fopen来打开第一LUA脚本文件,相关代码如下:
FILE*file=fopen(“xx”,“rb”);
其中,“xx”则是第一LUA脚本文件的文件名,“rb”则是读取第一LUA脚本文件。
然后,将文件指针移动到第一LUA脚本文件尾部,再获取第一LUA脚本文的文件大小,相关代码如下:
fseek(file,0,SEEK_END);
uintfilesize=ftell(file);
其中,fseek(file,0,SEEK_END),用于将文件指针移动到第一LUA脚本尾部;
uintfilesize=ftell(file),用于获取第一LUA脚本文件的大小。
再然后,调用fread函数来读取整个第一LUA脚本文件到内存中,存储在缓存buf中,相关代码如下:
fread(buf,filesize,1,file);
最后,对存储在buf中的第一LUA脚本文件进行压缩。具体来讲,可以使用开源的压缩库ZLIB接口来对第一LUA脚本文件进行压缩,相关代码如下:
newsize=Zlib.compress(buf,filesize,newbuf)
其中,Zlib.compress则是开源压缩库ZLIB的压缩数据的接口;参数buf是读取的第一LUA脚本文件;参数filesize是读取的第一LUA脚本文件的大小;参数newbuf是压缩后的第一LUA脚本文件;返回值newsize是文件压缩后的大小。
步骤S103:采用非对称加密算法对压缩文件进行加密,获得加密文件。
作为一种可选的实施例,如图2所示,步骤S103,包括:
通过随机算法计算至少一个随机数;获取第一LUA脚本的文件名,并计算第一LUA脚本的文件名的MD5值;基于第一LUA脚本的文件名的MD5值和随机数,创建私钥,其中,私钥中包含MD5值和随机数;基于RSA加密算法,将私钥计算成公钥;基于公钥对压缩文件进行加密,获得加密文件。
在具体实施过程中,可以通过如下代码计算随机数:
KEY1=rand();
其中,KEY1使用随机算法生成一段随机数。
在具体实施过程中,可以通过如下代码计算第一LUA脚本的文件名的MD5值:
KEY2=MD5.Create(“lua文件名”);
其中,MD5.Create则是MD5算法的接口。得到其第一LUA脚本的文件名的HASH值(哈希值)KEY2。此处,第一LUA脚本的文件名的HASH值,则可以使得每个LUA文件的解密私钥KEY是不一样的,从而增加LUA脚本被反编译的难度。
在具体实施过程中,对压缩文件加密使用私钥KEY由两部分组成,一个随机数KEY1,另一个是第一LUA脚本的文件名的MD5值KEY2,可以通过如下代码,将KEY1和KEY2拼接,拼接成一个私钥KEY:
KEY=KEY1+KEY2;
此处,由于每个LUA脚本的文件名是不同的,所以每个LUA脚本的文件名的MD5值也不同,自然,每个LUA脚本对应的私钥也不同,这样黑客在破解加密文件时,就不能像现有技术中仅破解一个加密文件,而是需要对每个加密文件逐一破解,这大大增加了破解难度,进而增加了LUA脚本被反编译的难度,提高了信息安全。
在具体实施过程中,可以使用RSA加密算法来生成公钥PublicKey,相关代码如下:
RSA.CreatePairKey(KEY,PublicKey);
在具体实施过程中,可以调用RSA算法的加密接口来对压缩文件进行加密,相关代码如下:
RSA.encrypt(newbuf,newsize,PublicKey);
至此,就实现了对所有使用的LUA脚本的压缩文件使用RSA非对称加密算法来进行加密。
作为一种可选的实施例,在步骤S103之后,还包括:将加密文件发送给客户端。
在具体实施过程中,在获得加密文件后,服务器即可通过与客户端建立的通信通道将加密文件发送给客户端。
作为一种可选的实施例,在将加密文件发送给客户端之后,还包括:接收客户端发送的用于获取私钥的请求;将私钥发送给客户端,以使得客户端基于私钥对加密文件进行解密。
在具体实施过程中,客户端获取服务器下发的加密文件后,需要向服务器发送一请求,该请求用于向服务器获取解密用的私钥。在服务器收到该请求后,即可将对应加密文件的私钥发给客户端。其中,若该请求中包含多个LUA脚本的加密文件,则将这些加密文件对应的私钥以表格的形式一起发给客户端。
作为一种可选的实施例,将私钥发送给客户端之前,还包括:获取客户端发送的的身份验证信息;基于身份验证信息,对客户端进行身份验证;若验证通过,则执行将私钥发送给客户端。
在具体实施过程中,当客户端程序运行后,首先是需要用户名和密码进行登录到服务器,从而才能发生请求解密使用的私钥KEY请求,从而对KEY的请求加强了一层保护的作用。
在具体实施过程中,当服务器收到客户端的请求后,服务器可以将私钥KEY进行加密后发生到客户端,从而进一步提高的数据的安全性。
至此,就实现了从服务器获取解密LUA文件所需要的私钥KEY。
在具体实施过程中,在客户端请求到了LUA解密所使用的KEY后,则可以对每个LUA文件进行解密,以得到原始的LUA文件。具体实现如下:
RSA.decrypt(newbuf,newsize,KEY);
其中,RSA.decrypt是RSA的解密算法的接口;
其中,KEY则是从服务器请求的RSA的私钥KEY。
在具体实施过程中,使用上述解密接口则可以对每个加密的LUA文件进行解密,从而供后续程序使用。
作为一种可选的实施例,在步骤S101之后,还包括:计算第一LUA脚本的HASH值;存储第一LUA脚本的HASH值。
在具体实施过程中,加密文件在传输过程中,可能被黑客利用,携带有“外挂”功能,则会很危险,存在安全隐患。此处,存储第一LUA脚本的HASH值,目的在于后续对客户端解密得到的LUA脚本进行验证,防止客户端使用的是一个带“外挂”功能的LUA脚本,进一步提高数据安全。
作为一种可选的实施例,在步骤S103之后,还包括:
接收客户端发送的第二LUA脚本的HASH值,第二LUA脚本是客户端对加密文件进行解密以及解压后获得的LUA脚本;将第一LUA脚本的HASH值与第二LUA脚本的HASH值进行比对;若一致,则向客户端发送第一指令,以控制客户端执行第二LUA脚本;若不一致,则向客户端发送第二指令,以禁止客户端执行第二LUA脚本。
在具体实施过程中,在客户端对加密文文件解密后,则会在后续程序中直接使用,因此,可以在使用之前再进一步的来计算整个LUA文件的HASH值,以检测其是否有被修改,从而可以防止使用的是一个带“外挂”功能的LUA脚本,并且在计算完成后将计算结果上报到服务器。
在具体实施过程中,在正常情况下,第一LUA脚本和第二LUA脚本是一样的,二者的HASH值相同。但是,若加密文件在传输过程中被黑客利用,携带有“外挂”功能,那么,第一LUA脚本和第二LUA脚本就不一样了,二者的HASH值就不同了。
在具体实施过程中,客户端计算第二LUA脚本的HASH值时,相关代码如下:
result=MD5.Create(newbuf);
在具体实施过程中,在获得第二LUA脚本的HASH值后,客户端即可将所有LUA文件计算完成后则将计算结果加密后上报到服务器。
至此,就实现了对解密的LUA文件来计算其的HASH值并将结果上报到服务器。
在具体实施过程中,在服务器接收到第二LUA脚本的HASH值后,可以先对数据进行解密得到HASH值(即:第一HASH值),然后和服务器存储的LUA文件的HASH值(即:第二HASH值)进行比对,如果是正确的则可以向户发送第一指令,来让客户端继续执行LUA脚本,如果不正确则说明客户端的LUA文件有问题,则可以向客户端发送第二指令,让客户端停止执行该LUA脚本,并从服务器来更新最新的LUA文件。
至此,就实现了服务器来对客户端的LUA文件进行校验,从而保障客户端使用的文件是正确的。
上述本申请实施例中的技术方案,至少具有如下的技术效果或优点:
在本申请实施例中,公开了一种对LUA脚本进行加密的方法,包括:获取第一LUA脚本;对所述第一LUA脚本文件进行压缩,获得压缩文件;采用非对称加密算法对所述压缩文件进行加密,获得加密文件。由于采用了非对称加密算法对第一LUA脚本的压缩文件进行加密,所以解决了现有技术中LUA脚本容易被反编译,存在严重的信息安全隐患的技术问题。实现了增加LUA脚本被反编译的难度,从而提高了信息安全的技术效果。
实施例二
基于同一发明构思,本实施例提供了一种对LUA脚本进行加密的装置,如图2所示,包括:
第一获取模块201,用于获取第一LUA脚本;
压缩模块202,用于对所述第一LUA脚本文件进行压缩,获得压缩文件;
加密模块203,用于采用非对称加密算法对所述压缩文件进行加密,获得加密文件。
作为一种可选的实施例,所述加密模块203,包括:
第一计算子模块,用于获取所述第一LUA脚本的文件名,并计算所述第一LUA脚本的文件名的MD5值;
第二计算子模块,用于通过随机算法计算至少一个随机数;
创建子模块,用于基于所述第一LUA脚本的文件名的MD5值和所述随机数,创建私钥,其中,所述私钥中包含所述MD5值和所述随机数;
第三计算子模块,用于基于RSA加密算法,将所述私钥计算成公钥;
加密子模块,用于基于所述公钥对所述压缩文件进行加密,获得所述加密文件。
作为一种可选的实施例,所述对LUA脚本进行加密的装置,还包括:
第一发送模块,用于所述基于所述公钥对所述压缩文件进行加密,获得所述加密文件之后,将所述加密文件发送给客户端。
作为一种可选的实施例,所述对LUA脚本进行加密的装置,还包括:
第一接收模块,用于所述将所述加密文件发送给客户端之后,接收所述客户端发送的用于获取所述私钥的请求;
第二发送模块,用于将所述私钥发送给所述客户端,以使得所述客户端基于所述私钥对所述加密文件进行解密。
作为一种可选的实施例,所述对LUA脚本进行加密的装置,还包括:
第二获取模块,用于所述将所述私钥发送给所述客户端之前,获取所述客户端发送的的身份验证信息;
验证模块,用于基于所述身份验证信息,对所述客户端进行身份验证;若验证通过,则通过所述第二送给模块执行所述将所述私钥发送给所述客户端。
作为一种可选的实施例,所述第二发送模块,具体用于:
将所述私钥加密后发送给所述客户端。
作为一种可选的实施例,所述对LUA脚本进行加密的装置,还包括:
计算模块,用于所述获取第一LUA脚本之后,计算所述第一LUA脚本的HASH值;
存储模块,用于存储所述第一LUA脚本的HASH值。
作为一种可选的实施例,所述对LUA脚本进行加密的装置,还包括:
第二接收模块,用于所述采用非对称加密算法对所述压缩文件进行加密,获得加密文件之后,接收所述客户端发送的第二LUA脚本的HASH值,所述第二LUA脚本是所述客户端对所述加密文件进行解密以及解压后获得的LUA脚本;
比对模块,用于将所述第一LUA脚本的HASH值与所述第二LUA脚本的HASH值进行比对;
第三发送模块,用于若一致,则向所述客户端发送第一指令,以控制所述客户端执行所述第二LUA脚本;若不一致,则向所述客户端发送第二指令,以禁止所述客户端执行所述第二LUA脚本。
由于本实施例所介绍的对LUA脚本进行加密的装置为实施本申请实施例中对LUA脚本进行加密的方法所采用的装置,故而基于本申请实施例中所介绍的对LUA脚本进行加密的方法,本领域所属技术人员能够了解本实施例的对LUA脚本进行加密的装置的具体实施方式以及其各种变化形式,所以在此对于该对装置如何实现本申请实施例中的方法不再详细介绍。只要本领域所属技术人员实施本申请实施例中对LUA脚本进行加密的的方法所采用的装置,都属于本申请所欲保护的范围。
上述本申请实施例中的技术方案,至少具有如下的技术效果或优点:
在本申请实施例中,公开了一种对LUA脚本进行加密的装置,包括:第一获取模块,用于获取第一LUA脚本;压缩模块,用于对所述第一LUA脚本文件进行压缩,获得压缩文件;加密模块,用于采用非对称加密算法对所述压缩文件进行加密,获得加密文件。由于采用了非对称加密算法对第一LUA脚本的压缩文件进行加密,所以解决了现有技术中LUA脚本容易被反编译,存在严重的信息安全隐患的技术问题。实现了增加LUA脚本被反编译的难度,从而提高了信息安全的技术效果。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。

Claims (10)

1.一种对LUA脚本进行加密的方法,其特征在于,包括:
获取第一LUA脚本;
对所述第一LUA脚本文件进行压缩,获得压缩文件;
采用非对称加密算法对所述压缩文件进行加密,获得加密文件。
2.如权利要求1所述的对LUA脚本进行加密的方法,其特征在于,所述采用非对称加密算法对所述压缩文件进行加密,获得加密文件,包括:
获取所述第一LUA脚本的文件名,并计算所述第一LUA脚本的文件名的MD5值;
通过随机算法计算至少一个随机数;
基于所述第一LUA脚本的文件名的MD5值和所述随机数,创建私钥,其中,所述私钥中包含所述MD5值和所述随机数;
基于RSA加密算法,将所述私钥计算成公钥;
基于所述公钥对所述压缩文件进行加密,获得所述加密文件。
3.如权利要求1或2所述的对LUA脚本进行加密的方法,其特征在于,所述基于所述公钥对所述压缩文件进行加密,获得所述加密文件之后,还包括:
将所述加密文件发送给客户端。
4.如权利要求3所述的对LUA脚本进行加密的方法,其特征在于,所述将所述加密文件发送给客户端之后,还包括:
接收所述客户端发送的用于获取所述私钥的请求;
将所述私钥发送给所述客户端,以使得所述客户端基于所述私钥对所述加密文件进行解密。
5.如权利要求4所述的对LUA脚本进行加密的方法,其特征在于,所述将所述私钥发送给所述客户端之前,还包括:
获取所述客户端发送的的身份验证信息;
基于所述身份验证信息,对所述客户端进行身份验证;
若验证通过,则执行所述将所述私钥发送给所述客户端。
6.如权利要求4所述的对LUA脚本进行加密的方法,其特征在于,所述将所述私钥发给所述客户端,包括:
将所述私钥加密后发送给所述客户端。
7.如权利要求4所述的对LUA脚本进行加密的方法,其特征在于,所述获取第一LUA脚本之后,还包括:
计算所述第一LUA脚本的HASH值;
存储所述第一LUA脚本的HASH值。
8.如权利要求7所述的对LUA脚本进行加密的方法,其特征在于,所述采用非对称加密算法对所述压缩文件进行加密,获得加密文件之后,还包括:
接收所述客户端发送的第二LUA脚本的HASH值,所述第二LUA脚本是所述客户端对所述加密文件进行解密以及解压后获得的LUA脚本;
将所述第一LUA脚本的HASH值与所述第二LUA脚本的HASH值进行比对;
若一致,则向所述客户端发送第一指令,以控制所述客户端执行所述第二LUA脚本;
若不一致,则向所述客户端发送第二指令,以禁止所述客户端执行所述第二LUA脚本。
9.一种对LUA脚本进行加密的装置,其特征在于,包括:
第一获取模块,用于获取第一LUA脚本;
压缩模块,用于对所述第一LUA脚本文件进行压缩,获得压缩文件;
加密模块,用于采用非对称加密算法对所述压缩文件进行加密,获得加密文件。
10.如权利要求9所述的对LUA脚本进行加密的装置,其特征在于,所述加密模块,包括:
第一计算子模块,用于获取所述第一LUA脚本的文件名,并计算所述第一LUA脚本的文件名的MD5值;
第二计算子模块,用于通过随机算法计算至少一个随机数;
创建子模块,用于基于所述第一LUA脚本的文件名的MD5值和所述随机数,创建私钥,其中,所述私钥中包含所述MD5值和所述随机数;
第三计算子模块,用于基于RSA加密算法,将所述私钥计算成公钥;
加密子模块,用于基于所述公钥对所述压缩文件进行加密,获得所述加密文件。
CN201710206800.2A 2017-03-31 2017-03-31 一种对lua脚本进行加密的方法及装置 Pending CN107169317A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201710206800.2A CN107169317A (zh) 2017-03-31 2017-03-31 一种对lua脚本进行加密的方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201710206800.2A CN107169317A (zh) 2017-03-31 2017-03-31 一种对lua脚本进行加密的方法及装置

Publications (1)

Publication Number Publication Date
CN107169317A true CN107169317A (zh) 2017-09-15

Family

ID=59849321

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710206800.2A Pending CN107169317A (zh) 2017-03-31 2017-03-31 一种对lua脚本进行加密的方法及装置

Country Status (1)

Country Link
CN (1) CN107169317A (zh)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107957954A (zh) * 2017-12-19 2018-04-24 郑州云海信息技术有限公司 一种Linux系统下提高测试数据安全性的方法和系统
CN108829396A (zh) * 2018-06-15 2018-11-16 腾讯科技(深圳)有限公司 脚本编译的方法、脚本执行的方法、相关装置及系统
CN109992987A (zh) * 2017-12-29 2019-07-09 深圳市融汇通金科技有限公司 基于Nginx的脚本文件保护方法、装置及终端设备
CN110034923A (zh) * 2018-01-11 2019-07-19 武汉斗鱼网络科技有限公司 一种信息处理方法以及相关设备

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102999726A (zh) * 2012-12-14 2013-03-27 北京奇虎科技有限公司 文件宏病毒免疫方法和装置
CN103559441A (zh) * 2013-10-28 2014-02-05 中国科学院信息工程研究所 一种恶意文件云环境下跨平台检测方法及系统
CN105959728A (zh) * 2016-06-27 2016-09-21 武汉斗鱼网络科技有限公司 统计直播平台在线人数的系统及其方法
CN106020803A (zh) * 2016-05-11 2016-10-12 深圳市麦斯杰网络有限公司 被监控对象模板的动态定义方法及装置
CN106155729A (zh) * 2015-04-21 2016-11-23 阿里巴巴集团控股有限公司 Lua脚本热更新方法、装置及系统

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102999726A (zh) * 2012-12-14 2013-03-27 北京奇虎科技有限公司 文件宏病毒免疫方法和装置
CN103559441A (zh) * 2013-10-28 2014-02-05 中国科学院信息工程研究所 一种恶意文件云环境下跨平台检测方法及系统
CN106155729A (zh) * 2015-04-21 2016-11-23 阿里巴巴集团控股有限公司 Lua脚本热更新方法、装置及系统
CN106020803A (zh) * 2016-05-11 2016-10-12 深圳市麦斯杰网络有限公司 被监控对象模板的动态定义方法及装置
CN105959728A (zh) * 2016-06-27 2016-09-21 武汉斗鱼网络科技有限公司 统计直播平台在线人数的系统及其方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
王凤英等: "《网络与信息安全》", 30 June 2015 *

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107957954A (zh) * 2017-12-19 2018-04-24 郑州云海信息技术有限公司 一种Linux系统下提高测试数据安全性的方法和系统
CN109992987A (zh) * 2017-12-29 2019-07-09 深圳市融汇通金科技有限公司 基于Nginx的脚本文件保护方法、装置及终端设备
CN109992987B (zh) * 2017-12-29 2021-04-27 港融科技有限公司 基于Nginx的脚本文件保护方法、装置及终端设备
CN110034923A (zh) * 2018-01-11 2019-07-19 武汉斗鱼网络科技有限公司 一种信息处理方法以及相关设备
CN110034923B (zh) * 2018-01-11 2022-02-22 武汉斗鱼网络科技有限公司 一种信息处理方法以及相关设备
CN108829396A (zh) * 2018-06-15 2018-11-16 腾讯科技(深圳)有限公司 脚本编译的方法、脚本执行的方法、相关装置及系统
CN108829396B (zh) * 2018-06-15 2022-02-01 腾讯科技(深圳)有限公司 脚本编译的方法、脚本执行的方法、相关装置及系统

Similar Documents

Publication Publication Date Title
CN108241517B (zh) 一种软件升级方法、客户端及电子设备
JP6878609B2 (ja) データバックアップ方法およびデータバックアップ装置、記憶媒体ならびにサーバ
CN114726643B (zh) 云平台上的数据存储、访问方法及装置
CN105700945B (zh) 一种基于净室环境的虚拟机安全迁移方法
CN103873454B (zh) 一种认证方法及设备
US11716206B2 (en) Certificate based security using post quantum cryptography
CN104618096B (zh) 保护密钥授权数据的方法、设备和tpm密钥管理中心
CN107169317A (zh) 一种对lua脚本进行加密的方法及装置
US10601590B1 (en) Secure secrets in hardware security module for use by protected function in trusted execution environment
CN107196907B (zh) 一种安卓so文件的保护方法及装置
CN109921902A (zh) 一种密钥管理方法、安全芯片、业务服务器及信息系统
CN108199847B (zh) 数字安全处理方法、计算机设备及存储介质
KR20090095635A (ko) 전자 기기 내의 프로그램 상태 데이터의 보안 저장을 위한 방법
CN109472130A (zh) Linux密码管理方法、中控机、可读存储介质
US11632246B2 (en) Hybrid key derivation to secure data
JP5985884B2 (ja) 情報処理装置、情報処理方法、および情報処理システム
CN110032874A (zh) 一种数据存储方法、装置及设备
CN111865609A (zh) 一种基于国密算法的私有云平台数据加解密系统
CN105468940A (zh) 软件保护方法及装置
CN116635847A (zh) 实现弹性确定性加密
CN109063496A (zh) 一种数据处理的方法及装置
US11777708B2 (en) Secure encryption of partial blocks
CN108768938B (zh) 一种网页数据加解密方法及装置
CN109981551A (zh) 一种基于区块链的数据传输系统、方法及相关设备
WO2022068362A1 (zh) 一种基于区块链的信息处理方法、装置、设备及介质

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
RJ01 Rejection of invention patent application after publication

Application publication date: 20170915

RJ01 Rejection of invention patent application after publication