CN109992987A - 基于Nginx的脚本文件保护方法、装置及终端设备 - Google Patents
基于Nginx的脚本文件保护方法、装置及终端设备 Download PDFInfo
- Publication number
- CN109992987A CN109992987A CN201711490170.2A CN201711490170A CN109992987A CN 109992987 A CN109992987 A CN 109992987A CN 201711490170 A CN201711490170 A CN 201711490170A CN 109992987 A CN109992987 A CN 109992987A
- Authority
- CN
- China
- Prior art keywords
- encryption
- file
- script file
- nginx
- authorization
- 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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/604—Tools and structures for managing or administering access control systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/62—Protecting access to data via a platform, e.g. using keys or access control rules
- G06F21/6209—Protecting 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2221/00—Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/21—Indexing 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/2141—Access rights, e.g. capability lists, access control lists, access tables, access matrices
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- General Health & Medical Sciences (AREA)
- Computer Hardware Design (AREA)
- Computer Security & Cryptography (AREA)
- Health & Medical Sciences (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Bioethics (AREA)
- Automation & Control Theory (AREA)
- Storage Device Security (AREA)
Abstract
本发明适用于加密技术领域,提供了基于Nginx的脚本文件保护方法、装置、终端设备及计算机可读存储介质,包括:将脚本文件编译为字节码,根据所述字节码构建原数据段;使用加密密钥对所述原数据段进行加密,得到加密数据段;在所述加密数据段后添加固定字符串,并使用哈希算法对按照所述加密数据段和所述固定字符串顺序拼接成的全段进行计算,得到加密哈希;将所述加密哈希添加入所述加密数据段的头部,得到加密文件。本发明对基于Nginx运行的脚本文件进行加密,实现了有效保护,规范了脚本文件从编写完毕到发布的流程,并在Nginx上对应地添加解密模块,用于实现加密文件执行功能,提升了脚本文件的安全性。
Description
技术领域
本发明属于加密技术领域,尤其涉及基于Nginx的脚本文件保护方法、装置、终端设备及计算机可读存储介质。
背景技术
相比传统的互联网业务,现今的业务请求普遍存在着高并发的特点,而Nginx作为一种高性能的服务器,具有高效解析和全异步等特点,能够满足业务需求,已被越来越多的企业和个人采用。在实际应用时,为了提高开发效率,可将脚本语言如Lua嵌入至Nginx中,这样就能够使用Lua语言编写应用脚本,部署在Nginx中运行,充分体现Nginx的性能。
在现有的基于Nginx和Lua的开发平台,如OpenResty中,主要使用Lua即时编译器运行Lua脚本,以达到更快的解析执行效果。但是,在整个过程中,脚本文件都是在明文环境下运行,而一些用户在使用时,由于可能不清楚代码细节,导致在对脚本文件进行改动后,出现运行崩溃等问题。另外,脚本文件暴露在外,导致其无法作为商业产品进行出售。综上,现有方法无法对脚本文件进行有效的保护,脚本文件容易被破解,安全性低。
发明内容
有鉴于此,本发明实施例提供了基于Nginx的脚本文件保护方法、装置、终端设备及计算机可读存储介质,以解决现有技术中基于Nginx运行的脚本文件处于明文环境,安全性低的问题。
本发明实施例的第一方面提供了一种基于Nginx的脚本文件保护方法,包括:
将脚本文件编译为字节码,根据所述字节码构建原数据段;
使用加密密钥对所述原数据段进行加密,得到加密数据段;
在所述加密数据段后添加固定字符串,并使用哈希算法对按照所述加密数据段和所述固定字符串顺序拼接成的全段进行计算,得到加密哈希;
将所述加密哈希添加入所述加密数据段的头部,得到加密文件。
本发明实施例的第二方面提供了一种基于Nginx的脚本文件保护装置,包括:
编译单元,用于将脚本文件编译为字节码,根据所述字节码构建原数据段;
加密单元,用于使用加密密钥对包括所述原数据段进行加密,得到加密数据段;
计算单元,用于在所述加密数据段后添加固定字符串,并使用哈希算法对按照所述加密数据段和所述固定字符串顺序拼接成的全段进行计算,得到加密哈希;
添加单元,用于将所述加密哈希添加入所述加密数据段的头部,得到加密文件。
本发明实施例的第三方面提供了一种终端设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如上所述基于Nginx的脚本文件保护方法的步骤。
本发明实施例的第四方面提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现如上所述基于Nginx的脚本文件保护方法的步骤。
本发明实施例与现有技术相比存在的有益效果是:本发明通过编译脚本文件为字节码,并创建包含字节码的原数据段,使用加密密钥对原数据段加密得到加密数据段,接着在加密数据段尾部添加固定字符串,使用哈希算法对添加完成后的加密数据段进行计算,得到加密哈希,最后将加密哈希添加入加密数据段的头部,得到加密文件,规范了脚本加密的流程,并通过层层加密提高了基于Ningx运行的脚本文件的安全性,使其不容易被破解。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例一提供的基于Nginx的脚本文件保护方法的实现流程图;
图2是本发明实施例二提供的基于Nginx的脚本文件保护方法的实现流程图;
图3是本发明实施例三提供的基于Nginx的脚本文件保护方法的实现流程图;
图4是本发明实施例四提供的基于Nginx的脚本文件保护装置的结构框图;
图5是本发明实施例五提供的终端设备的示意图。
具体实施方式
以下描述中,为了说明而不是为了限定,提出了诸如特定系统结构、技术之类的具体细节,以便透彻理解本发明实施例。然而,本领域的技术人员应当清楚,在没有这些具体细节的其它实施例中也可以实现本发明。在其它情况中,省略对众所周知的系统、装置、电路以及方法的详细说明,以免不必要的细节妨碍本发明的描述。
为了说明本发明所述的技术方案,下面通过具体实施例来进行说明。
图1示出了本发明实施例一提供的基于Nginx的脚本文件保护方法的实现流程,详述如下:
在S101中,将脚本文件编译为字节码,根据所述字节码构建原数据段。
脚本语言是为了缩短传统的编写、编译、链接和运行过程而创建的计算机编程语言。早期的脚本语言被称为批处理语言或工作控制语言,编写的脚本通常是解释运行而非编译运行。随着技术的更新换代,脚本语言都超越了使计算机简单任务自动化的领域,成熟到可以编写精巧的程序。现今几乎所有计算机系统的各个层次都存在脚本语言,包括操作系统层和高级语言层等。脚本文件由脚本语言书写而成,是一种纯文本保存的程序。一般来说,计算机中的脚本文件可以确定一系列控制计算机进行运算操作的动作,并且在脚本文件中,还可以编写一定的逻辑分支,以实现不同情况下的动作。脚本语言的应用非常广泛,特别地,脚本语言编写的脚本文件可以嵌入至服务器中,实现特定功能,可以减少高级语言的代码量,提升开发效率。
将上述概念应用到互联网业务中,典型应用是将脚本语言Lua编写的脚本文件作为模块嵌入至服务器Nginx中。其中,Nginx是一个高性能并支持高并发的轻量级服务器,主要采用模块化的架构。在官方版本号的Nginx中,大部分功能都是通过模块方式提供的,比方业务请求模块、邮件模块等。这一特性使得开发人员能够通过开发新的模块扩展Nginx的功能,将Nginx打造成适于个人或企业应用的服务器,并且还能将一些功能在Nginx的前端反向代理层解决,比如登录校验和数据库访问等。可是,Nginx的模块需要用C语言开发,并且开发过程必须符合一系列复杂的规则,另外开发人员必须熟悉Nginx的源码,这使得开发难度极高。为了将高性能的Nginx得到快速应用,可将脚本文件嵌入至Nginx中,在现有的平台OpenResty中,采用脚本语言Lua编写脚本文件。Lua是一个小巧的脚本语言,由标准C语言编写而成,几乎在所有操作系统和平台上都可以编译和运行,其设计目的是为了嵌入应用程序中,从而为应用程序提供灵活的扩展和定制功能。用Lua语言编写的脚本文件可以很容易的被C语言或C++语言编写的代码调用,也可以反过来调用C语言或C++语言的函数,这使得Lua在应用程序中可以被广泛应用。实际应用中,Lua编写的脚本文件不仅仅作为扩展脚本文件,也可以作为普通的配置文件,代替可扩展标记语言(Extensible MarkupLanguage,XML)等文件格式,并且更容易理解和维护。基于上述优点,可在Nginx的基础上扩展Lua开发方式,采用Lua脚本实现业务逻辑,保证高并发服务能力的同一时候极大地减少了业务逻辑实现成本。
在OpenResty开发平台中,生成的Nginx项目在发布时会携带所有源代码,即整个脚本文件都是在明文环境下运行,所以需要对脚本文件进行保护,防止脚本文件暴露在外,首先是将脚本文件进行初步加密,将其编译为字节码。其中,字节码(Bytecode)指的是已经经过编译,但与特定机器码无关,需要直译器转译后才能成为机器码的中间代码。字节码是编码后的数值常量、引用、指令等构成的序列,并不像源代码一般可供人阅读,其特殊的性质可让对应脚本文件在不同的软件环境、硬件环境中运行。但上述的将脚本文件通过编译器编译为字节码过程,更多的是为了屏蔽脚本文件的代码细节,实现加密。值得一提的是,在本发明实施例中,为了方便说明,主要阐述经OpenResty开发平台生成的Nginx项目下的Lua脚本文件保护过程,但其并不构成对本发明实施例的限定,只要脚本文件基于Nginx运行,那么无论其采用何种脚本语言编写,对应的保护方法都应包含在本发明实施例中。在将脚本文件编译为字节码后,由于字节码容易被反编译,从而被破解出原始的脚本文件,所以需要对字节码进行进一步的处理,即根据字节码构建出原数据段。原数据段可以只包含字节码,但是在实际应用中,为了实现更多的如筛选使用用户、记录脚本文件有效期等功能,可额外添加其他内容。在原数据段构建完成后,再进行后续的加密操作,以加强对脚本文件的保护。
在编译过程中,开发人员编写完多个脚本文件后,可能其中的部分脚本文件属于开源代码,并不需要进行加密,所以只将部分需要加密的脚本文件进行编译得到字节码,减少计算机资源的浪费。优选地,使用Lua即时编译器编译Lua脚本文件为字节码。Lua即时编译器相当于原生Lua的高效版,在使用Lua即时编译器运行Lua脚本文件时,其运行效率和速度都比原始的解析执行引擎更快。相比于通用的编译工具Luac,Lua即时编译器的适用范围更广,并且Lua即时编译器的编译速度更快,编译生成的字节码也比luac工具生成的字节码容量更小,故可应用在本发明实施例中,整体提升编译效率。
在S102中,使用加密密钥对包括所述原数据段进行加密,得到加密数据段。
在原数据段构建完毕后,使用加密密钥对原数据段进行加密。其中,密钥加密本来是为保证在开放式环境中网络传输的安全而提供的加密服务,在本发明实施例中,更多是为了防止字节码公开而导致所有用户都能执行字节码,从而实现脚本文件对应的功能。对原数据段进行加密,实质上是将原本为明文的原数据段内容按照某种加密算法进行处理,生成包含密文的加密数据段的过程。加密数据段的内容与原数据段的内容唯一对应,并且几乎不可能通过计算进行反推得到原数据段,只能在加密数据段内容的基础上输入与加密密钥对应的解密密钥,进行计算得到,可保护原数据段不被非法人员窃取、阅读。用于加密的加密密钥可以由开发人员预先设置,也可以借助随机数工具自动生成。
优选地,基于对称加密算法,使用加密密钥对原数据段进行加密,得到加密数据段。对称加密算法是指加密和解密过程都使用相同密钥的加密算法,如DES算法和3DES算法等,在基于对称加密算法计算出加密数据段后,如果想反推出原数据段,则需使用解密密钥及相同算法的逆算法对加密数据段进行解密,将其恢复成可读明文,其中,由于对称加密算法的特性,解密密钥可由已知加密密钥直接得出。当然,也可以使用非对称加密算法对原数据段进行加密,只是非对称加密算法中,解密密钥与加密密钥不同,并且解密密钥不能由加密密钥直接推导出,所以在后期还需要考虑将解密密钥返回至有权限进行解密的用户,故优先选择对称加密算法,以降低后续处理的复杂度。
在S103中,在所述加密数据段后添加固定字符串,并使用哈希算法对按照所述加密数据段和所述固定字符串顺序拼接成的全段进行计算,得到加密哈希。
在对原数据段使用加密密钥进行加密后,可得到加密数据段。为了进一步增强安全性,也为了方便后期进行验证,在加密数据段后添加固定字符串,并使用哈希算法对加密数据段和固定字符串全段进行计算,得到加密哈希。固定字符串为用户预先设置好的一串字符,具体的内容可由开发人员自由设定。可选地,固定字符串也可以随机生成,但随机生成的结果必须是开发人员可以获知的。其中,哈希算法是用来解决数据和数据之间对应关系的一种算法,也叫做散列函数。哈希算法具有单向特征,可将明文不可逆地映射为密文,即只有加密过程,没有解密过程。同时,哈希算法可以将任意长度的输入经过变化以后得到固定长度的输出。在加密数据段的基础上增加加密哈希,增加加密手段,并且在后期解密到此步骤时,可以通过计算哈希值来进行验证。优选地,在本发明实施例中,采用的哈希算法为安全哈希算法(Secure Hash Algorithm,SHA)。SHA算法被公认为最安全的哈希算法之一,可应用在本发明实施例中,优选地,采用应用最广泛的SHA-1算法,降低哈希过程中可能出现的计算错误。
在S104中,将所述加密哈希添加入所述加密数据段的头部,得到加密文件。
通过哈希算法对加密数据段进行计算后,将得到的加密哈希添加入加密数据段的头部,生成最终的加密文件,从而进行发布,其中,加密文件并不包含用于计算的固定字符串。以哈希算法采用SHA-1算法为例,加密文件的前20字节固定为SHA-1算法计算的信息摘要的输出,即加密哈希,20个字节后才是真正的加密部分。在用户对加密文件进行解密时,由于哈希算法具有单向特征,并不能加密文件直接进行解密,而是要通过验证手段。具体地,首先找到发布的文件目录,读取文件目录内某个文件的第20个字节之后的内容,并根据其内容,通过与生成加密哈希时同样的哈希算法(在此例中为SHA-1算法)计算出哈希值,再通过判断该哈希值是否等于前20个字节的内容,进行流程选择。如果该哈希值不等于前20个字节的内容,则该文件是未被加密的脚本文件,用户可以直接查看脚本文件的内容,不用进行后续的解密流程;如果该哈希值等于前20个字节的内容,则前20个字节即为加密哈希,该文件为加密文件,从而可以根据与加密密钥对应的解密密钥,解密加密文件的第20字节开始部分。
通过图1所示实施例可知,在本发明实施例中,通过将脚本文件编译为字节码,构建包含字节码的原数据段,并使用加密密钥对原数据段加密得到加密数据段,在加密数据段后添加固定字符串,再计算全段的哈希值为加密哈希,最后将加密哈希添加入加密数据段的头部,生成加密文件,规范了在Nginx环境下,脚本文件编写完成后进行加密的过程,实现了对基于Nginx运行的脚本文件的保护,提升了脚本文件的安全性。
图2所示,是在本发明实施例一的基础上,对原数据段的内容和构建过程的细化。本发明实施例提供了基于Nginx的脚本文件保护方法的实现流程图,如图所示,该基于Nginx的脚本文件保护方法可以包括以下步骤:
在S201中,使用所述哈希算法对所述字节码进行计算,得到字节码哈希。
由于脚本文件编译而成的字节码可以被用户执行,并可能被反编译破解,暴露脚本文件的实现细节,故在本发明实施例中,使用哈希算法对字节码全段进行计算,得到对应的字节码哈希。此处使用到的哈希算法,通常是与对加密数据段和固定字符串全段进行哈希计算使用的哈希算法一致。为了性能和安全性的考虑,优先选择SHA-1算法。当然,为了提升加密强度,在此步骤中也可以使用不同的哈希算法,在后续验证时,用户需要考虑到使用不同的哈希算法来验证加密文件和验证字节码。
在S202中,获取客户号、当前时间和脚本截至时间,所述客户号为预设的可执行所述脚本文件的用户的用户编号,所述脚本截至时间为所述脚本文件有效的最终日期。
在实际应用中,需要考虑到在对包含脚本文件的产品或平台进行发布或商业出售时,如发布Nginx项目时,对于没有权限访问的用户来说,开发人员不希望脚本文件的细节暴露在外。但是,对于其他内部开发人员或者购买了该脚本文件使用权限的用户等,可从统一发布的内容中执行脚本文件对应字节码,即拥有与其他用户没有的该脚本文件的权限。所以在脚本文件生成后,需要制定客户号,该客户号可为一组编号,拥有该客户号的计算机能够对脚本文件进行访问,而与该客户号不对应的计算机则没有权限访问。在对脚本文件进行加密时,获取预先设定的客户号,由于可能多个计算机都拥有一个脚本文件的使用权限,所以获取的客户号可能有多个。此外,还需要获取当前时间和脚本截至时间。当前时间,是指脚本文件生成的当前时间,可以通过编写函数进行自动获取。脚本截至时间,是指考虑到实际购买的情况,开发者设定的希望该脚本文件停止使用的时间,即该脚本文件有效的最终日期。比如脚本文件的当前时间为“2017年1月1日”,有效期为五年,那么开发人员可以设置脚本截至时间为“2022年1月1日”,其中设置的方法可以是手动对每一个脚本文件进行设置,或者编写设置机制,在脚本文件生成完毕后,根据当前时间自动设置脚本截至时间。设置完成后,当时间到达“2022年1月1日”,用户就会丧失访问该脚本文件的权限,如果想要继续使用,只能向脚本文件的发布方重新购买。可选地,脚本截至时间可以设置为零,即对应脚本文件对于对应用户永久有效。
在S203中,将所述客户号、所述当前时间、所述脚本截至时间、所述字节码哈希和所述字节码进行拼接,构建出所述原数据段。
在计算得到和获取到所需的数据后,即可开始构建原数据段。具体地,将客户号、当前时间、脚本截至时间、字节码哈希和字节码进行拼接,构建出原数据段。虽然本发明实施例并未限定拼接的顺序,但优选地,按照客户号、当前时间、脚本截至时间、字节码哈希和字节码的顺序进行拼接,构成固定格式的原数据段,这种固定格式符合数据的一般格式,并且方便制定解密过程的判断机制。拼接完成后,就可以对原数据段进行后续的加密操作。
对应加密的,在基于Nginx运行的加密文件发布后,在Nginx上增添脚本解密验证模块,供以有权限用户对加密文件进行解密验证,从而执行。具体地,在Lua即时编译器中设置解密验证机制,用于规范解密流程。应用解密验证机制,首先读取Nginx项目中指定目录的文件,并通过哈希算法对该文件的第20个字节后的内容进行计算,判断计算的结果是否等于前20个字节中的加密哈希,如果不等于,则该文件为未加密文件,不进行解密操作;如果等于,则认为是加密文件,则根据解密密钥,解密该文件的第20字节开始部分,其中获取解密密钥的过程,在后文进行具体叙述。当对加密文件进行解密后,可得到原数据段内容,在解密验证机制中,对原数据段内的各个内容进行判断,以决定之后的执行流程。解密出原数据段内的客户号后,获取用户计算机的客户号,并与原数据段内容中的客户号进行比对,如果两个客户号不相同,则证明该用户计算机并没有执行脚本文件对应字节码的权限,生成客户号不符的报错原因进行报错,并停止后续解密流程执行;若客户号相同,则证明该用户拥有与脚本文件相关的权限,继续根据原数据段其他内容进行下一步判断。接下来,获取用户计算机的实时时间,判断其是否小于原数据段内容中的脚本截至时间,如果实时时间大于脚本截至时间,则生成对应的用户权限有效期已过的报错原因进行报错,并停止后续解密流程执行;如果实时时间小于或者等于脚本截至时间或者脚本截至时间为零,则继续进行下一步判断。在解密验证机制的最后,用户获取到原数据段内容中的字节码,并通过哈希算法进行计算,得到哈希值,将该哈希值与原数据段内的字节码哈希进行比对,若是两个哈希值不同,则生成对应的哈希值不符的报错原因进行,并停止后续解密流程执行;若是两个哈希值相同,则通过解密验证机制完成系列判断验证,用户可成功访问原数据段,并可读取并执行字节码,完成对应脚本文件的功能。
通过图2所示实施例可知,在本发明实施例中,通过使用哈希算法对字节码进行计算得到字节码哈希,并在获取客户号、当前时间和脚本截至时间后,将客户号、当前时间、脚本截至时间、字节码哈希和字节码进行拼接,构建出原数据段,规范了原数据段的内容格式,实现了验证用户身份和保证有效期等功能,提高了脚本文件编译出的字节码的保密性。
图3所示,是在本发明实施例一的基础上,为了提升加密文件的保密性,在加密文件的外部再增设一层授权文件的过程的细化。本发明实施例提供的基于Nginx的脚本文件保护方法的实现流程图,如图所示,该基于Nginx的脚本文件保护方法可以包括以下步骤:
在S301中,获取授权客户号和授权截至时间,所述授权客户号为预设的拥有访问所述加密文件权限的用户的用户编号,所述授权截至时间为授权有效的最终日期。
在加密文件添加入Nginx项目并进行发布后,用户在解密加密文件时,可能会遇到这样一种情况,即用户计算机的实时时间已经超过加密文件中原数据段内容记录的脚本截至时间。这意味着脚本文件已经超出有效期,用户在解密加密文件的过程中,验证脚本截至时间时,会因报错而无法继续进行解密。如果用户想要继续购买权限,以执行脚本文件对应的字节码,那么发布方的开发人员就必须针对该用户对脚本文件进行重新加密,并把期限更久的脚本截至时间写入到加密过程中构建的原数据段中,最后再得到加密文件,这样无疑浪费了许多时间。故在本发明实施例中,在生在加密文件之后,在加密文件的外部再设置一层授权文件,以使用户的解密执行权限更易于控制。生成授权文件的第一步,是获取授权客户号和授权截至时间,授权客户号指的是有权限对加密文件进行解密执行的用户的用户编号,一般情况下,授权客户号和构建原数据段时获取到的客户号一致。授权截至时间由开发人员指定。在脚本截至时间到达之后,如果用户计算机的实时时间并未超过授权截至时间,则用户可以继续持有有效的解密执行权限,直到实时时间到达授权截至时间为止。可选地,授权截至时间可以为零,即对应用户永久持有对加密文件的解密执行权限。
在S302中,将所述授权客户号、所述授权截至时间和所述加密密钥进行拼接,构建出授权数据段。
在获取到授权客户号和授权截至时间之后,继续获取加密密钥,以构建授权数据段。对原数据段进行加密时,由于优先采用对称加密算法,所以在构建授权数据段阶段,可以获取对原数据段加密时所用的加密密钥,这样在用户授权通过后,就能够直接通过加密密钥推导出解密密钥,从而对加密数据段进行解密。获取完成后,将授权客户号、授权截至时间和加密密钥进行拼接,构建出授权数据段。虽然本发明实施例并未限定拼接的顺序,但优选地,按照授权客户号、授权截至时间和加密密钥的顺序进行拼接,构成固定格式的授权数据段,这种固定格式便于代码的编写与控制。拼接完成后,就可以对授权数据段进行后续的加密操作。
在S303中,使用公钥加密算法生成密钥对,所述密钥对包括私钥和公钥。
在对授权数据段进行加密时,为了保证授权文件的安全性,减小密钥被窃取造成的经济损失,所以优先使用公钥加密算法。公钥加密算法也叫非对称加密,指的是由对应的一对唯一性密钥(即公钥和私钥)组成的加密方法,公钥和私钥并不能互相推导出,可以很好解决本发明实施例中密钥的发布和管理问题。当然,基于对称加密算法对授权数据段进行加密也是可以实现的,只是安全性比之公钥加密算法稍逊一筹。在进行加密之前,自动通过公钥加密算法生成密钥对。优选地,采用的公钥加密算法为RSA公钥加密算法,其能同时用于加密和数字签名,也易于理解和操作,作为被研究得最广泛的公钥加密算法,普遍认为是最优秀的公钥方案之一,故可应用在本发明实施例中。
在S304中,使用所述私钥对所述授权数据段进行加密,生成授权文件。
在本发明实施例中,私钥对应对生成加密文件时,对原数据段进行加密的加密密钥,故在授权数据段生成后,使用私钥对授权数据段进行加密,并将加密后的结果作为授权文件,在实际的Nginx项目中,可将授权文件放在加密文件的外层,进行发布,以对用户权限进行初步的控制。值得一提的是,在加密文件的原数据段内的文件截至时间到达时,用户可以使用授权文件来继续获得脚本文件的有效使用权限,具体地,在对加密文件的解密流程到达原数据段这一层级时,获取用户计算机的实时时间,并获取文件截至时间和授权截至时间,如果实时时间小于或者等于上述两个截至时间中的最大值,则可继续执行后续解密流程;如果文件截至时间和授权截至时间都为零,则继续执行后续解密流程;如果实时时间大于两个截至时间中的最大值,则生成有效期已过的报错原因进行报错,并停止后续解密流程执行。
可选地,将所述授权客户号、所述密钥对和所述加密密钥存储至内部服务器,所述内部服务器用于存放更新所述脚本文件所需要的信息。在生成授权文件同时,将授权客户号和密钥信息(包括密钥对和加密密钥)存储至内部服务器中,内部服务器并不用于日常的项目支持,而是在用户或者开发人员想要对脚本文件所属的项目进行更新时,如果用户或者开发人员的计算机拥有对应的授权客户号,则向其提供其必要的密钥信息,如此用户或者开发人员便可以直接解密访问最内部的脚本文件,直接对脚本文件进行更新,而不用更新整个包含脚本文件在内的主程序,提高了用户获取密钥方式的多样性,也减小了对包含脚本文件在内的主程序的更新难度。
可选地,生成许可密钥头文件,所述许可密钥头文件包含所述密钥对;通过所述许可密钥头文件编译Nginx项目。在使用公钥加密算法生成密钥对之后,生成包含公钥和私钥的许可密钥头文件,该许可密钥头文件通过不同的宏使得公钥和私钥区别开来。值得一提的是,在上述的使用私钥对授权数据段进行加密过程之前,相关的授权生成工具需要引用该许可密钥头文件,以取得私钥。在后续的项目生成过程中,增加与许可密钥头文件对应的模块编译选项进行编译。如在OpenResty开发平台中,由于Nginx采用模块化的架构,故通过许可密钥头文件更新模块编译选项,并更新用于编译Nginx工程的Makefile文件,最后利用Makefile的自动化编译功能,即可编译出指定版本的Nginx项目。由于在编译时,Makefile文件的更新与解密部分相关,故根据Makefile文件编译的Nginx项目能够支持解密,即在该Nginx项目启动时,能够读取指定的目录中的授权文件和加密文件,并进行解密,解密成功的前提是Nginx项目的用户具有对应权限。上述内容体现了基于脚本文件对应的加密文件和授权文件生成Nginx项目的具体过程,并且通过模块化编译,可以降低编译时的复杂度,提高编译的时效性,并且编译出的Nginx项目能在启动时进入解密流程,最后执行脚本文件。
更多地,由于公钥用于在授权启动阶段,对授权文件进行解密,所以将公钥放入脚本文件嵌入对象的源代码中。以OpenResty开发平台举例,在密钥对生成完毕后,Nginx程序引用生成的许可密钥头文件,并获取公钥,将公钥放置于Nginx程序内部代码段,此外还可在项目发布阶段通过加壳保护包含公钥相关代码段在内的关键代码段。其中,加壳是利用特殊的算法对可执行文件里的资源进行压缩,经压缩后的文件可以直接运行。关键代码段经加壳后,可以防止外部程序或软件对加壳代码段本身的反汇编分析或者动态分析,从而可以保护壳内的关键代码段不被外部程序破坏,保证其正常运行。放置完毕后,即可发布Nginx项目。对应加密的,要对Nginx项目实现解密执行,除了在Nginx上增添文件解密模块的基础上,还要再增添授权文件解析模块,用于Nginx项目的授权启动阶段读取指定的授权文件,并从Nginx程序内部代码段获取到公钥,对该授权文件进行解密。授权文件解析过程中,如果无法解析授权文件,则生成同时输出无法启动的报错原因进行报错;如果授权文件不存在,那么无法获取到后续对加密文件进行解密的解密密钥,则需要使用默认的编译在程序内部的解密密钥,并使用该解密密钥进行后续的解密加密文件流程。
通过图3所示实施例可知,在本发明实施例中,通过获取授权客户号和授权截至时间,并将授权客户号、授权截至时间和加密密钥进行拼接得到授权数据段,同时使用公钥加密算法生成包含私钥和公钥的密钥对,最后使用私钥加密授权数据段,生成授权文件,在对脚本文件进行加密的基础上,通过增添授权文件实现了对用户权限的有效控制,进一步提升了脚本文件的安全性。
应理解,上述实施例中各步骤的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本发明实施例的实施过程构成任何限定。
对应于上文实施例所述的基于Nginx的脚本文件保护方法,图4示出了本发明实施例四提供的基于Nginx的脚本文件保护装置的结构框图,参照图4,该装置包括:
编译单元41,用于将脚本文件编译为字节码,根据所述字节码构建原数据段;
加密单元42,用于使用加密密钥对包括所述原数据段进行加密,得到加密数据段;
计算单元43,用于在所述加密数据段后添加固定字符串,并使用哈希算法对按照所述加密数据段和所述固定字符串顺序拼接成的全段进行计算,得到加密哈希;
添加单元44,用于将所述加密哈希添加入所述加密数据段的头部,得到加密文件。
可选的,所述编译单元41,包括:
字节计算单元,用于使用所述哈希算法对所述字节码进行计算,得到字节码哈希;
获取单元,用于获取客户号、当前时间和脚本截至时间,所述客户号为预设的可执行所述脚本文件的用户的用户编号,所述脚本截至时间为所述脚本文件有效的最终日期;
拼接单元,用于将所述客户号、所述当前时间、所述脚本截至时间、所述字节码哈希和所述字节码进行拼接,构建出所述原数据段。
可选的,所述基于Nginx的脚本文件保护装置还包括:
授权获取单元,用于获取授权客户号和授权截至时间,所述授权客户号为预设的拥有访问所述加密文件权限的用户的用户编号,所述授权截至时间为授权有效的最终日期;
授权拼接单元,用于将所述授权客户号、所述授权截至时间和所述加密密钥进行拼接,构建出授权数据段;
生成单元,用于使用公钥加密算法生成密钥对,所述密钥对包括私钥和公钥;
授权加密单元,用于使用所述私钥对所述授权数据段进行加密,生成授权文件。
图5是本发明一实施例提供的终端设备的示意图。如图5所示,该实施例的终端设备5包括:处理器50、存储器51以及存储在所述存储器51中并可在所述处理器50上运行的计算机程序52。所述处理器50执行所述计算机程序52时实现上述各个基于Nginx的脚本文件保护方法实施例中的步骤,例如图1所示的步骤S101至S104。或者,所述处理器50执行所述计算机程序52时实现上述各装置实施例中各模块/单元的功能,例如图4所示单元41至44的功能。
示例性的,所述计算机程序52可以被分割成一个或多个模块/单元,所述一个或者多个模块/单元被存储在所述存储器51中,并由所述处理器50执行,以完成本发明。所述一个或多个模块/单元可以是能够完成特定功能的一系列计算机程序指令段,该指令段用于描述所述计算机程序52在所述终端设备5中的执行过程。例如,所述计算机程序52可以被分割成编译单元、加密单元、计算单元和添加单元,各单元具体功能如下:
编译单元,用于将脚本文件编译为字节码,根据所述字节码构建原数据段;
加密单元,用于使用加密密钥对包括所述原数据段进行加密,得到加密数据段;
计算单元,用于在所述加密数据段后添加固定字符串,并使用哈希算法对按照所述加密数据段和所述固定字符串顺序拼接成的全段进行计算,得到加密哈希;
添加单元,用于将所述加密哈希添加入所述加密数据段的头部,得到加密文件。
所述终端设备5可以是桌上型计算机、笔记本、掌上电脑及云端服务器等计算设备。所述终端设备可包括,但不仅限于,处理器50、存储器51。本领域技术人员可以理解,图5仅仅是终端设备5的示例,并不构成对终端设备5的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件,例如所述终端设备5还可以包括输入输出设备、网络接入设备、总线等。
所称处理器50可以是中央处理单元(Central Processing Unit,CPU),还可以是其他通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现成可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
所述存储器51可以是所述终端设备5的内部存储单元,例如终端设备5的硬盘或内存。所述存储器51也可以是所述终端设备5的外部存储设备,例如所述终端设备5上配备的插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(Flash Card)等。进一步地,所述存储器51还可以既包括所述终端设备5的内部存储单元也包括外部存储设备。所述存储器51用于存储所述计算机程序以及所述/终端设备5所需的其他程序和数据。所述存储器51还可以用于暂时地存储已经输出或者将要输出的数据。
所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,仅以上述各功能单元、模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能单元、模块完成,即将所述装置的内部结构划分成不同的功能单元或模块,以完成以上描述的全部或者部分功能。实施例中的各功能单元、模块可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中,上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。另外,各功能单元、模块的具体名称也只是为了便于相互区分,并不用于限制本申请的保护范围。上述系统中单元、模块的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述或记载的部分,可以参见其它实施例的相关描述。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
在本发明所提供的实施例中,应该理解到,所揭露的装置/终端设备和方法,可以通过其它的方式实现。例如,以上所描述的装置/终端设备实施例仅仅是示意性的,例如,所述模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通讯连接可以是通过一些接口,装置或单元的间接耦合或通讯连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的模块/单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明实现上述实施例方法中的全部或部分流程,也可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一计算机可读存储介质中,该计算机程序在被处理器执行时,可实现上述各个方法实施例的步骤。其中,所述计算机程序包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机可读介质可以包括:能够携带所述计算机程序代码的任何实体或装置、记录介质、U盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(Read-Only Memory,ROM)、随机存取存储器(RandomAccess Memory,RAM)、电载波信号、电信信号以及软件分发介质等。需要说明的是,所述计算机可读介质包含的内容可以根据司法管辖区内立法和专利实践的要求进行适当的增减,例如在某些司法管辖区,根据立法和专利实践,计算机可读介质不包括电载波信号和电信信号。
以上所述实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围,均应包含在本发明的保护范围之内。
Claims (10)
1.一种基于Nginx的脚本文件保护方法,其特征在于,包括:
将脚本文件编译为字节码,根据所述字节码构建原数据段;
使用加密密钥对所述原数据段进行加密,得到加密数据段;
在所述加密数据段后添加固定字符串,并使用哈希算法对按照所述加密数据段和所述固定字符串顺序拼接成的全段进行计算,得到加密哈希;
将所述加密哈希添加入所述加密数据段的头部,得到加密文件。
2.如权利要求1所述的基于Nginx的脚本文件保护方法,其特征在于,所述根据所述字节码构建原数据段,包括:
使用所述哈希算法对所述字节码进行计算,得到字节码哈希;
获取客户号、当前时间和脚本截至时间,所述客户号为预设的可执行所述脚本文件的用户的用户编号,所述脚本截至时间为所述脚本文件有效的最终日期;
将所述客户号、所述当前时间、所述脚本截至时间、所述字节码哈希和所述字节码进行拼接,构建出所述原数据段。
3.如权利要求1所述的基于Nginx的脚本文件保护方法,其特征在于,还包括:
获取授权客户号和授权截至时间,所述授权客户号为预设的拥有访问所述加密文件权限的用户的用户编号,所述授权截至时间为授权有效的最终日期;
将所述授权客户号、所述授权截至时间和所述加密密钥进行拼接,构建出授权数据段;
使用公钥加密算法生成密钥对,所述密钥对包括私钥和公钥;
使用所述私钥对所述授权数据段进行加密,生成授权文件。
4.如权利要求3所述的基于Nginx的脚本文件保护方法,其特征在于,还包括:
将所述授权客户号、所述密钥对和所述加密密钥存储至内部服务器,所述内部服务器用于存放更新所述脚本文件所需要的信息。
5.如权利要求3所述的基于Nginx的脚本文件保护方法,其特征在于,所述使用公钥加密算法生成密钥对之后,还包括:
生成许可密钥头文件,所述许可密钥头文件包含所述密钥对;
通过所述许可密钥头文件编译Nginx项目。
6.一种基于Nginx的脚本文件保护装置,其特征在于,包括:
编译单元,用于将脚本文件编译为字节码,根据所述字节码构建原数据段;
加密单元,用于使用加密密钥对包括所述原数据段进行加密,得到加密数据段;
计算单元,用于在所述加密数据段后添加固定字符串,并使用哈希算法对按照所述加密数据段和所述固定字符串顺序拼接成的全段进行计算,得到加密哈希;
添加单元,用于将所述加密哈希添加入所述加密数据段的头部,得到加密文件。
7.如权利要求6所述的基于Nginx的脚本文件保护装置,其特征在于,所述编译单元,包括:
字节计算单元,用于使用所述哈希算法对所述字节码进行计算,得到字节码哈希;
获取单元,用于获取客户号、当前时间和脚本截至时间,所述客户号为预设的可执行所述脚本文件的用户的用户编号,所述脚本截至时间为所述脚本文件有效的最终日期;
拼接单元,用于将所述客户号、所述当前时间、所述脚本截至时间、所述字节码哈希和所述字节码进行拼接,构建出所述原数据段。
8.如权利要求6所述的基于Nginx的脚本文件保护装置,其特征在于,还包括:
授权获取单元,用于获取授权客户号和授权截至时间,所述授权客户号为预设的拥有访问所述加密文件权限的用户的用户编号,所述授权截至时间为授权有效的最终日期;
授权拼接单元,用于将所述授权客户号、所述授权截至时间和所述加密密钥进行拼接,构建出授权数据段;
生成单元,用于使用公钥加密算法生成密钥对,所述密钥对包括私钥和公钥;
授权加密单元,用于使用所述私钥对所述授权数据段进行加密,生成授权文件。
9.一种终端设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如权利要求1至5任一项所述基于Nginx的脚本文件保护方法的步骤。
10.一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至5任一项所述基于Nginx的脚本文件保护方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711490170.2A CN109992987B (zh) | 2017-12-29 | 2017-12-29 | 基于Nginx的脚本文件保护方法、装置及终端设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711490170.2A CN109992987B (zh) | 2017-12-29 | 2017-12-29 | 基于Nginx的脚本文件保护方法、装置及终端设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109992987A true CN109992987A (zh) | 2019-07-09 |
CN109992987B CN109992987B (zh) | 2021-04-27 |
Family
ID=67111500
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201711490170.2A Active CN109992987B (zh) | 2017-12-29 | 2017-12-29 | 基于Nginx的脚本文件保护方法、装置及终端设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109992987B (zh) |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110569032A (zh) * | 2019-09-16 | 2019-12-13 | 郑州昂视信息科技有限公司 | 脚本语言解释器应用标签裁决的方法及装置 |
CN110647760A (zh) * | 2019-09-23 | 2020-01-03 | 北京信安世纪科技股份有限公司 | 一种脚本加密、执行方法及装置 |
CN110929291A (zh) * | 2019-12-04 | 2020-03-27 | 楚天龙股份有限公司 | 一种存取文本文件的方法、装置和计算机可读存储介质 |
CN111967032A (zh) * | 2020-08-27 | 2020-11-20 | 长城计算机软件与系统有限公司 | 基于混淆处理的文件加密方法及解密方法 |
CN112269970A (zh) * | 2020-10-28 | 2021-01-26 | 国能日新科技股份有限公司 | 一种脚本加密方法、装置、服务器及存储介质 |
CN113901503A (zh) * | 2021-10-26 | 2022-01-07 | 北京云迹科技有限公司 | 一种加密方法、加密装置和解密方法、解密装置 |
CN114491421A (zh) * | 2022-01-21 | 2022-05-13 | 北京字跳网络技术有限公司 | 文件加密、文件处理方法、装置、可读介质和电子设备 |
CN114844693A (zh) * | 2022-04-27 | 2022-08-02 | 深圳云创数安科技有限公司 | 轻量级的通信数据加密方法、装置、设备及存储介质 |
Citations (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101296148A (zh) * | 2008-06-26 | 2008-10-29 | 蓝汛网络科技(北京)有限公司 | 一种多媒体内容的合法性验证方法、系统及装置 |
CN102014133A (zh) * | 2010-11-26 | 2011-04-13 | 清华大学 | 在云存储环境下一种安全存储系统的实现方法 |
CN102426589A (zh) * | 2011-10-31 | 2012-04-25 | 合一网络技术(北京)有限公司 | 一种用于数据库信息检索的中间层系统及信息检索方法 |
CN102469345A (zh) * | 2010-11-19 | 2012-05-23 | 康佳集团股份有限公司 | 多媒体媒体数据加解密方法 |
CN102780768A (zh) * | 2012-06-29 | 2012-11-14 | 北京奇虎科技有限公司 | 一种大并发量请求的处理方法及处理系统 |
US20150209674A1 (en) * | 2014-01-24 | 2015-07-30 | 2911 Concepts Llc | Code-Based Enabling of Product Capabilities |
CN105354449A (zh) * | 2015-11-04 | 2016-02-24 | 北京鼎源科技有限公司 | 一种面向Lua语言的加扰混淆方法和解密方法 |
CN106155729A (zh) * | 2015-04-21 | 2016-11-23 | 阿里巴巴集团控股有限公司 | Lua脚本热更新方法、装置及系统 |
CN106650337A (zh) * | 2016-12-29 | 2017-05-10 | 北京奇虎科技有限公司 | 对安装包中的脚本文件进行处理的方法和装置 |
CN106656496A (zh) * | 2017-02-22 | 2017-05-10 | 郑州云海信息技术有限公司 | 一种数据加密方法及装置 |
CN106709362A (zh) * | 2016-12-06 | 2017-05-24 | 武汉斗鱼网络科技有限公司 | 文件加密方法及装置、文件解密方法及装置 |
CN107169317A (zh) * | 2017-03-31 | 2017-09-15 | 武汉斗鱼网络科技有限公司 | 一种对lua脚本进行加密的方法及装置 |
CN107301062A (zh) * | 2017-05-10 | 2017-10-27 | 北京奇艺世纪科技有限公司 | 一种系统的升级方法及装置 |
-
2017
- 2017-12-29 CN CN201711490170.2A patent/CN109992987B/zh active Active
Patent Citations (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101296148A (zh) * | 2008-06-26 | 2008-10-29 | 蓝汛网络科技(北京)有限公司 | 一种多媒体内容的合法性验证方法、系统及装置 |
CN102469345A (zh) * | 2010-11-19 | 2012-05-23 | 康佳集团股份有限公司 | 多媒体媒体数据加解密方法 |
CN102014133A (zh) * | 2010-11-26 | 2011-04-13 | 清华大学 | 在云存储环境下一种安全存储系统的实现方法 |
CN102426589A (zh) * | 2011-10-31 | 2012-04-25 | 合一网络技术(北京)有限公司 | 一种用于数据库信息检索的中间层系统及信息检索方法 |
CN102780768A (zh) * | 2012-06-29 | 2012-11-14 | 北京奇虎科技有限公司 | 一种大并发量请求的处理方法及处理系统 |
US20150209674A1 (en) * | 2014-01-24 | 2015-07-30 | 2911 Concepts Llc | Code-Based Enabling of Product Capabilities |
CN106155729A (zh) * | 2015-04-21 | 2016-11-23 | 阿里巴巴集团控股有限公司 | Lua脚本热更新方法、装置及系统 |
CN105354449A (zh) * | 2015-11-04 | 2016-02-24 | 北京鼎源科技有限公司 | 一种面向Lua语言的加扰混淆方法和解密方法 |
CN106709362A (zh) * | 2016-12-06 | 2017-05-24 | 武汉斗鱼网络科技有限公司 | 文件加密方法及装置、文件解密方法及装置 |
CN106650337A (zh) * | 2016-12-29 | 2017-05-10 | 北京奇虎科技有限公司 | 对安装包中的脚本文件进行处理的方法和装置 |
CN106656496A (zh) * | 2017-02-22 | 2017-05-10 | 郑州云海信息技术有限公司 | 一种数据加密方法及装置 |
CN107169317A (zh) * | 2017-03-31 | 2017-09-15 | 武汉斗鱼网络科技有限公司 | 一种对lua脚本进行加密的方法及装置 |
CN107301062A (zh) * | 2017-05-10 | 2017-10-27 | 北京奇艺世纪科技有限公司 | 一种系统的升级方法及装置 |
Cited By (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110569032A (zh) * | 2019-09-16 | 2019-12-13 | 郑州昂视信息科技有限公司 | 脚本语言解释器应用标签裁决的方法及装置 |
CN110569032B (zh) * | 2019-09-16 | 2023-03-14 | 郑州昂视信息科技有限公司 | 脚本语言解释器应用标签裁决的方法及装置 |
CN110647760A (zh) * | 2019-09-23 | 2020-01-03 | 北京信安世纪科技股份有限公司 | 一种脚本加密、执行方法及装置 |
CN110929291A (zh) * | 2019-12-04 | 2020-03-27 | 楚天龙股份有限公司 | 一种存取文本文件的方法、装置和计算机可读存储介质 |
CN111967032A (zh) * | 2020-08-27 | 2020-11-20 | 长城计算机软件与系统有限公司 | 基于混淆处理的文件加密方法及解密方法 |
CN111967032B (zh) * | 2020-08-27 | 2023-08-25 | 长城计算机软件与系统有限公司 | 基于混淆处理的文件加密方法及解密方法 |
CN112269970A (zh) * | 2020-10-28 | 2021-01-26 | 国能日新科技股份有限公司 | 一种脚本加密方法、装置、服务器及存储介质 |
CN113901503A (zh) * | 2021-10-26 | 2022-01-07 | 北京云迹科技有限公司 | 一种加密方法、加密装置和解密方法、解密装置 |
CN114491421A (zh) * | 2022-01-21 | 2022-05-13 | 北京字跳网络技术有限公司 | 文件加密、文件处理方法、装置、可读介质和电子设备 |
CN114844693A (zh) * | 2022-04-27 | 2022-08-02 | 深圳云创数安科技有限公司 | 轻量级的通信数据加密方法、装置、设备及存储介质 |
CN114844693B (zh) * | 2022-04-27 | 2024-03-26 | 深圳云创数安科技有限公司 | 轻量级的通信数据加密方法、装置、设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN109992987B (zh) | 2021-04-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109992987A (zh) | 基于Nginx的脚本文件保护方法、装置及终端设备 | |
CN109766722B (zh) | 一种区块链中构建智能合约的方法 | |
US9135434B2 (en) | System and method for third party creation of applications for mobile appliances | |
US8495383B2 (en) | Method for the secure storing of program state data in an electronic device | |
CN111191286A (zh) | Hyperledger Fabric区块链隐私数据存储与访问系统及其方法 | |
TW202333054A (zh) | 加密使用者資料傳輸及儲存(nuts) | |
US20090077371A1 (en) | Systems and methods for a template-based encryption management system | |
CN101300583A (zh) | 用于可信赖移动电话的简单可伸缩和可配置安全启动 | |
KR20070057968A (ko) | 랜덤 함수를 이용한 비밀 공유 | |
CN101571900A (zh) | 一种软件版权保护方法、设备和系统 | |
CN103336929A (zh) | 用于已加密文件访问的方法和系统 | |
CN109255210A (zh) | 在区块链网络中提供智能合约的方法、装置及存储介质 | |
CN112307513B (zh) | 基于时域共识的上链文档安全管理方法、装置和电子设备 | |
Thilakanathan et al. | Secure and controlled sharing of data in distributed computing | |
CN112016104B (zh) | 一种金融敏感数据的加密方法、装置和系统 | |
CN109358859A (zh) | 在区块链网络中安装智能合约的方法、装置及存储介质 | |
CN111176677B (zh) | 服务器系统加固更新方法及装置 | |
US20140075205A1 (en) | Method of processing data to enable external storage thereof with minimized risk of information leakage | |
Dhiman et al. | Blockchain Merkle-Tree Ethereum Approach in Enterprise Multitenant Cloud Environment. | |
CN114003955A (zh) | 一种基于区块链的安全资信管控方法及相关设备 | |
Zawoad et al. | Towards building a forensics aware language for secure logging | |
Gunupudi et al. | SAgent: a security framework for JADE | |
CN115906117A (zh) | 一种基于区块链交易可信应用实现方法 | |
JP2011248792A (ja) | 端末データ管理システム | |
CN112258323A (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 | ||
CB02 | Change of applicant information |
Address after: 518000 Guangdong city of Shenzhen province Qianhai Shenzhen Hong Kong cooperation zone before Bay Road No. 1 building 201 room A (located in Shenzhen Qianhai business secretary Co. Ltd.) Applicant after: Gangrong Technology Co., Ltd. Address before: 518000 Guangdong city of Shenzhen province Qianhai Shenzhen Hong Kong cooperation zone before Bay Road No. 1 building 201 room A (located in Shenzhen Qianhai business secretary Co. Ltd.) Applicant before: Shenzhen Ronghui Tongjin Technology Co., Ltd. |
|
CB02 | Change of applicant information | ||
GR01 | Patent grant | ||
GR01 | Patent grant |