CN110032866B - 一种Web应用程序的处理方法及装置 - Google Patents

一种Web应用程序的处理方法及装置 Download PDF

Info

Publication number
CN110032866B
CN110032866B CN201810028036.9A CN201810028036A CN110032866B CN 110032866 B CN110032866 B CN 110032866B CN 201810028036 A CN201810028036 A CN 201810028036A CN 110032866 B CN110032866 B CN 110032866B
Authority
CN
China
Prior art keywords
function name
function
encryption
encrypting
core
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.)
Active
Application number
CN201810028036.9A
Other languages
English (en)
Other versions
CN110032866A (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.)
Guangzhou Zhongtian Technology Consulting 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 CN201810028036.9A priority Critical patent/CN110032866B/zh
Publication of CN110032866A publication Critical patent/CN110032866A/zh
Application granted granted Critical
Publication of CN110032866B publication Critical patent/CN110032866B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

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/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • 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/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/0618Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation
    • 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)
  • Computer Security & Cryptography (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Storage Device Security (AREA)

Abstract

本发明实施例提供了一种Web应用程序的处理方法及装置,其中的方法包括:获取Web应用程序的JS代码;从所述JS代码中筛选出核心函数,并获得所述核心函数的调用逻辑;基于预设消息摘要算法对所述核心函数的原始函数名称进行加密,获得第一函数名称;基于预设加密算法和所述调用逻辑对所述第一函数名称进行加密,获得第二函数名称;将所述JS代码中的所述原始函数名称替换为所述第二函数名称。本发明的方法解决了现有技术中由于黑客容易获取Web应用程序的核心内容而存在安全性较低的技术问题。

Description

一种Web应用程序的处理方法及装置
技术领域
本发明涉及计算机技术领域,尤其涉及一种Web应用程序的处理方法及装置。
背景技术
目前,Web应用程序是一种可以通过Web访问的应用程序,其优点是访问方式较简单,用户只需通过浏览器即可访问,而不需要再安装其他软件。
现有技术中的Web应用程序,其常用的编程语言是JavaScript,因而其程序的代码为JS代码。JS代码是一种解释性脚本语言,不需要进行编译,而是在运行时才进行解释执行,当Web应用程序发布时,则容易将源代码发布,尤其是Web应用程序中一些涉及安全性功能的内容,例如登录账号的密码加密,网络通信的协议加密等,容易被黑客获取并读懂分析其中的实现原理,因此导致安全性低。
由此可见,现有技术中由于黑客容易获取Web应用程序的核心内容而存在安全性较低的技术问题。
发明内容
本发明实施例提供了一种Web应用程序的处理方法及装置,用以解决现有技术中由于黑客容易获取Web应用程序的核心内容而存在安全性较低的技术问题。
第一方面,本发明提供了一种Web应用程序的处理方法,包括:
获取Web应用程序的JS代码;
从所述JS代码中筛选出核心函数,并获得所述核心函数的调用逻辑;
基于预设消息摘要算法对所述核心函数的原始函数名称进行加密,获得第一函数名称;
基于预设加密算法和所述调用逻辑对所述第一函数名称进行加密,获得第二函数名称;
将所述JS代码中的所述原始函数名称替换为所述第二函数名称。
可选地,所述方法还包括:在从所述JS代码中筛选出核心函数时:
从所述JS代码中筛选出部分非核心函数。
可选地,所述预设加密算法为TEA分组加密算法,所述基于预设加密算法和所述调用逻辑对所述第一函数名称进行加密获得第二函数名称,包括:
基于预设方法生成随机数,以所述随机数作为所述TEA分组加密算法的密钥;
根据所述调用逻辑获得所述核心函数的调用次数;
基于所述TEA分组加密算法、所述密钥、所述调用次数对所述第一函数名称进行加密,获得所述第二函数名称。
可选地,所述基于所述TEA分组加密算法、所述密钥、所述调用次数对所述第一函数名称进行加密,获得所述第二函数名称,包括:
基于所述TEA分组加密算法和所述密钥,对所述第一函数名称进行加密,获得第一加密结果;
基于所述TEA分组加密算法和所述密钥,对所述加密结果进行加密,获得第二加密结果;
获得当前的加密次数,判断所述当前的加密次数是否达到所述调用次数,
如果达到,则将所述第二加密结果作为所述第二函数名称,
如果未达到,则基于所述TEA分组加密算法和所述密钥,对所述第二加密结果进行加密,获得第三加密结果。
基于同样的发明构思,本发明第二方面提供了一种Web应用程序的处理装置,包括:
获取模块,用于获取Web应用程序的JS代码;
第一筛选模块,用于从所述JS代码中筛选出核心函数,并获得所述核心函数的调用逻辑;
第一加密模块,用于基于预设消息摘要算法对所述核心函数的原始函数名称进行加密,获得第一函数名称;
第二加密模块,用于基于预设加密算法和所述调用逻辑对所述第一函数名称进行加密,获得第二函数名称;
替换模块,用于将所述JS代码中的所述原始函数名称替换为所述第二函数名称。
可选的,所述装置还包括第二筛选模块,用于在从所述JS代码中筛选出核心函数时:
从所述JS代码中筛选出部分非核心函数。
可选的,所述预设加密算法为TEA分组加密算法,所述第二加密模块还用于:
基于预设方法生成随机数,以所述随机数作为所述TEA分组加密算法的密钥;
根据所述调用逻辑获得所述核心函数的调用次数;
基于所述TEA分组加密算法、所述密钥、所述调用次数对所述第一函数名称进行加密,获得所述第二函数名称。
可选的,所述第二加密模块还用于:
基于所述TEA分组加密算法和所述密钥,对所述第一函数名称进行加密,获得第一加密结果;
基于所述TEA分组加密算法和所述密钥,对所述加密结果进行加密,获得第二加密结果;
获得当前的加密次数,判断所述当前的加密次数是否达到所述调用次数,
如果达到,则将所述第二加密结果作为所述第二函数名称,
如果未达到,则基于所述TEA分组加密算法和所述密钥,对所述第二加密结果进行加密,获得第三加密结果。
基于同样的发明构思,本发明第三方面提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现第一方面提供的方法。
基于同样的发明构思,本发明第四方面提供了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现第一方面提供的方法。
本申请实施例中的上述一个或多个技术方案,至少具有如下一种或多种技术效果:
在本发明提供的方法中,获取Web应用程序的JS代码后,从JS代码中筛选出核心函数,并利用预设消息摘要算法对核心函数的原始函数名称进行了加密,由于大部分函数而言,是采用函数名称表达该函数的功能,从而通过函数名则可以知道此函数的实现功能,而本发明通过预设消息摘要算法对核心函数的名称进行了加密,因此加强了对核心函数功能的保护,也即加强了对Web应用程序的核心内容的保护,提高了Web应用程序的安全性,并且,本发明还进一步基于预设加密算法和调用逻辑对第一函数名称进行再次加密,获得第二函数名称,然后将第二函数名称替换JS代码中的所述原始函数名称,由于对核心函数的函数名称的加密与核心函数的调用逻辑有关,从而可以进一步的将函数名称与调用逻辑进行绑定,如果黑客需要获取核心函数的函数名称,则需要清楚该核心函数的调用逻辑,而不同函数的调用逻辑是不同的,也是复杂的,从而对Web应用程序中的函数名称进行了一步的保护,增加了函数名称的破解难度,有效防止了黑客获取JS代码的核心内容,故而进一步提高了安全性,由于黑客容易获取Web应用程序的核心内容而存在安全性较低的技术问题。
上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例中一种Web应用程序的处理方法的流程图;
图2为本发明实施例中一种Web应用程序的处理装置的结构示意图;
图3为本发明实施例中一种计算机可读存储介质的结构示意图;
图4为本发明实施例中一种计算机设备的结构示意图。
具体实施方式
本申请实施例通过提供一种Web应用程序的处理方法及装置,用以解决现有技术中由于黑客容易获取Web应用程序的核心内容而存在安全性较低的技术问题。
本申请实施例中的技术方案,总体思路如下:
获取Web应用程序的JS代码;从所述JS代码中筛选出核心函数,并获得所述核心函数的调用逻辑;基于预设消息摘要算法对所述核心函数的原始函数名称进行加密,获得第一函数名称;基于预设加密算法和所述调用逻辑对所述第一函数名称进行加密,获得第二函数名称;将所述JS代码中的所述原始函数名称替换为所述第二函数名称。
上述方法中,首先通过预设消息摘要算法对JS代码中的核心函数的原始函数名称进行加密,从而通过隐藏函数名称的方法使得获取核心函数的功能更难,提高了Web应用程序的安全性,并且,进一步根据预设加密算法和核心函数的调用逻辑对第一函数名称进行加密,由于对核心函数的函数名称的加密与核心函数的调用逻辑有关,从而可以进一步的将函数名称与调用逻辑进行绑定,如果黑客需要获取核心函数的函数名称,则需要清楚该核心函数的调用逻辑,而不同函数的调用逻辑是不同的,也是复杂的,从而对Web应用程序中的函数名称进行了一步的保护,增加了函数名称的破解难度,有效防止了黑客获取JS代码的核心内容,故而进一步提高了安全性,由于黑客容易获取Web应用程序的核心内容而存在安全性较低的技术问题。
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
实施例一
本实施例提供一种Web应用程序的处理方法,如图1所示,该方法包括:
步骤S101:获取Web应用程序的JS代码。
具体来说,JS代码即JavaScript代码,为直译式脚本语言,也是一种动态类型、弱类型、基于原型的语言,内置支持类型。通常被用来编写Web应用程序。
步骤S102:从所述JS代码中筛选出核心函数,并获得所述核心函数的调用逻辑。
具体来说,JS代码中包含Web应用程序的核心功能、安全性的功能的实现代码,这些代码是采用函数来实现,即核心函数。
在一种可选实施方式中,为了对核心函数起到更好的隐蔽作用,本实施也会也筛选出部分非核心函数,非核心函数的数量可以根据需要进行选择,例如核心函数的数量为50个,非核心函数的数量为5个,核心函数的数量为30个,非核心函数的数量为3等等,从而使得筛选出的函数中包含所有的核心函数也包含部分非核心函数。在具体的实施过程中,由于核心函数和非核心函数的数量为多个,则筛选完成后将会得到一个函数名称列表,其中,核心函数包括:
密码加密的函数:Function encryptPassword;
计算视频流地址请求的关键函数:Function calcliveKey;
计算消费的函数:Function calcSpending;
充值的函数:Function recharge;
非核心函数包括:
记录用户键盘操作的函数:Function dotKeyboard;
记录用户鼠标操作的函数:Function dotMouse。
通过上述操作,可以得到一个函数列表:
encryptPassword、calcliveKey、calcSpending、recharge、dotKeyboard、dotMouse。
在筛选出核心函数后,本发明实施例还对获得核心函数的调用逻辑,例如对于登录而言,由于登录需要经历账号输入、密码输入、密码加密的流程,那么其调用逻辑则包括在账号输入、密码输入、密码加密的过程中均需要调用该函数。
步骤S103:基于预设消息摘要算法对所述核心函数的原始函数名称进行加密,获得第一函数名称。
具体来说,预设消息摘要算法包括MD2(Message Digest Algorithm 2)、MD3、MD4、MD5。下面以MD5算法为例,具体介绍对核心函数的原始函数名称进行加密的过程,
对于密码加密的函数encryptPassword来说,可以利用Md5.Create来计算加密的结果,
“30e091d7dc166cf9”=Md5.Create(“encryptPassword”);
其中,Md5.Create则是计算Md5的接口函数,参数“encryptPassword”则是具体需要计算的md5的内容,即原始函数名称,返回值“30e091d7dc166cf9”则是得到的计算的md5的结果,也即第一函数名称。
同理,对其他函数的函数名称也采用MD5算法进行加密,即对各个原始函数名称计算其md5值:
79bd86e6ddefb0c0=Md5.Create(“calcliveKey”),对于计算视频流地址请求的关键函数的函数名称加密:
bc82d67f9c398d77=Md5.Create(“calcSpending”),对计算消费的函数的函数名称加密;
5e1d0bda83b02a3a=Md5.Create(“recharge”),对充值的函数的加密;
dd0d3a485dc0a081=Md5.Create(“dotKeyboard”);对记录用户键盘操作的函数的函数名称加密;
ae390a90869bdbc1=Md5.Create(“dotMouse”);对记录用户鼠标操作的函数的函数名称加密。
通过上述加密过程,可以得出加密的结果,即计算的Md5结果,JS代码中各个函数的原始的函数名称是可以表达函数的具体实现功能的,而通过Md5计算后,可以将原始函数名称转化成一串字符串,则对于不知道具体加密算法和逻辑的黑客来说,其通过字符串无法得知其真正的含义,从而可以起到较好的隐蔽函数功能的作用,同时也可以保障所有的函数名称不会重复,因而相互之间不冲突。
步骤S104:基于预设加密算法和所述调用逻辑对所述第一函数名称进行加密,获得第二函数名称。
具体来说,通过步骤S103中的消息摘要算法对函数名称进行加密后,为了进一步加强对函数名称的保护,本实施步骤则对加密后的第一函数名称的再次进行加密。
在一种可选实施方式中,采用的预设加密算法为TEA分组加密算法,基于预设加密算法和所述调用逻辑对所述第一函数名称进行加密获得第二函数名称,包括:
基于预设方法生成随机数,以所述随机数作为所述TEA分组加密算法的密钥;
根据所述调用逻辑获得所述核心函数的调用次数;
基于所述TEA分组加密算法、所述密钥、所述调用次数对所述第一函数名称进行加密,获得所述第二函数名称。
具体来说,采用TEA加密算法对第一函数名称再次进行加密,从而达到的混淆程度更高,同时本发明实施例通过预设方法生成随机数,从而每次对函数名称使用的加密密钥不同,对不同的函数名称使用加密密钥不同,从而增加了算法的复杂度,进而增加了破解难度。
由于本发明实施例中对第一函数名称的加密与调用逻辑有关,则在具体的实施过程中,可以根据调用逻辑获得核心函数的调用次数,以登录为例,需要经历账号输入,密码输入,密码加密的流程,因而根据该函数的调用逻辑获得的调用次数为3次,那么则需要对第一函数名称采用TEA加密算法加密三次。
在具体的实施过程中,以一次加密过程为例,对于encryptPassword函数,对应的Md5加密结果(即第一函数名称)是“30e091d7dc166cf9”,然后对其生成一个随机的密钥key1,key1=rand(),具体可以通过调用系统函数rand来产生一个随机数然后调用TEA加密算法的接口Tea.encrypt来得到第二函数名称,teaResult1=Tea.encrypt(“30e091d7dc166cf9”,key1),其中Tea.encrypt是加密算法TEA的加密接口,参数30e091d7dc166cf9”则是encryptPassword函数其对应的Md5加密结果,参数key1则是随机生成的key1,返回值teaResult1则是加密后的结果第二函数名称。
同理,对其他函数calcliveKey的加密方法也类似,
key2=rand();
teaResult2=Tea.encrypt(“79bd86e6ddefb0c0”,key2);
在一种可选实施方式中,基于所述TEA分组加密算法、所述密钥、所述调用次数对所述第一函数名称进行加密,获得所述第二函数名称,包括:
基于所述TEA分组加密算法和所述密钥,对所述第一函数名称进行加密,获得第一加密结果;
基于所述TEA分组加密算法和所述密钥,对所述加密结果进行加密,获得第二加密结果;
获得当前的加密次数,判断所述当前的加密次数是否达到所述调用次数,
如果达到,则将所述第二加密结果作为所述第二函数名称,
如果未达到,则基于所述TEA分组加密算法和所述密钥,对所述第二加密结果进行加密,获得第三加密结果。
具体来说,对于登录来说,其调用逻辑包括账号输入,密码输入,密码加密,那么第一次加密的过程则在账号输入处理逻辑中加入对第一函数名称的加密:
通过调用系统函数rand来产生一个随机数据key1,key1=rand(),然后利用将key1作为TEA分组加密算法的加密密钥,对第一函数名称30e091d7dc166cf9进行加密:
teaResult1=Tea.encrypt(“30e091d7dc166cf9”,key1),得到的第一加密结果为teaResult1,接着以teaResult1为下一次加密的输入,再次调用系统函数rand来产生一个随机数据key2,其中,key2=rand(),并利用将key2作为TEA分组加密算法的加密密钥,对teaResult1进行加密得到第二加密结果:teaResult2=Tea.encrypt(teaResult1,key2),通过上述两次加密过程可知,在每次加密是都重新生成一个随机数做为加密的密钥值,这样增加了加密的复杂度,从而增加了原始函数名称的破解难度,故而增加了原始函数的核心内容的保护,并且至少保证对第一函数名称进行两次加密。
在对第一函数名称进行两次加密后,统计当前的加密次数,并将该加密次数是否达到调用逻辑的调用次数,如果达到,则将上述得到的第二加密结果作为第二函数名称,如果未达到,则需要对第二加密结果进行再次加密,上述得到的第二加密结果为teaResult2,然后重复上述的加密过程,重新生成一个随机数,将随机数作为TEA加密算法的密钥对teaResult2,具体的实现代码如下:
key3=rand();
teaResult3=Tea.encrypt(teaResult2,key3);
通过上述第三次加密,最终得到的函数名称则是teaResult3,即为第二函数名称,同理对于其他函数也使用同样的方法来对函数名称加密,同时对于加密过程中使用的KEY值(key1、key2、key3等等)也会保存到全局变量中,方便后续读取和利用。
步骤S105:将所述JS代码中的所述原始函数名称替换为所述第二函数名称。
具体来说,通过将JS代码中的原始函数名称替换为第二函数名称后,JS代码中的从而所有的核心函数名称和部分筛选出的非核心函数名称都为采用预设加密算法加密后的值。这样当Web应用程序发布后,获取的JS代码中的函数名称是加密后的,从而可以加强对核心函数的保护,如果需要获取函数的功能,则需要获得相应的加密算法以及函数的调用逻辑,即函数名称的加密与函数的调用逻辑相关,由于函数的调用逻辑比较复杂,因此达到较好的保护函数代码的目的,进而加强了对web应用程序的核心内容的保护。
在具体的实施过程中,对于每一个函数,通过本实施方式的方法,会存储函数名称的Md5的的计算结果,在具体需要调用或者使用该函数时,则需要实时计算其对应的TEA加密的值,得到最终的TEA加密的结果去执行该函数。具体实现如下:
对于函数encryptPassword函数其对应的Md5加密结果是30e091d7dc166cf9。
在具体的JavaScript代码中需要调用encryptPassword的地方则其函数名称变成了teaResult3,因此本发明实施例需要通过再一次的重新计算得到teaResult3的值,从而才能够正确的调用此函数。对于登录必须经历账号输入,密码输入,密码加密这个流程,本发明实施例则在此流程中加入对密码加密函数名称的加密。
首先在账号输入处理逻辑中加入对函数名称的加密。
从全局变量可以获取到加密使用的key1值,此时存储的加密函数encryptPassword的名称是其Md5值30e091d7dc166cf9,即teaResult1=Tea.encrypt(“30e091d7dc166cf9”,key1);
接下来,在密码输入处理逻辑中加入对函数名称的加密。
其加密的初始值则是步骤1加密的结果teaResult1。
从全局变量可以获取到加密使用的key2值。
teaResult2=Tea.encrypt(teaResult1,key2);
然后在密码加密处理逻辑中加入对函数名称的加密。
其加密的初始值则是步骤2加密的结果teaResult2。
从全局变量可以获取到加密使用的key3值。
teaResult3=Tea.encrypt(teaResult2,key3);
通过上述方法,最终可以得到存储在JavaScript页面中的函数名encryptPassword加密后的函数名称,从而可以正确的调用到此函数。
This[‘teaResult3’]();
然后通过JavaScript的this指针来调用其全局加密函数,从而实现了最终调用该加密后的函数。
基于同一发明构思,本申请还提供了与实施例一种与Web应用程序的处理方法对应的装置,详见实施例二。
本实施例提供一种Web应用程序的处理装置,如图2所示,该装置包括:
获取模块201,用于获取Web应用程序的JS代码;
第一筛选模块202,用于从所述JS代码中筛选出核心函数,并获得所述核心函数的调用逻辑;
第一加密模块203,用于基于预设消息摘要算法对所述核心函数的原始函数名称进行加密,获得第一函数名称;
第二加密模块204,用于基于预设加密算法和所述调用逻辑对所述第一函数名称进行加密,获得第二函数名称;
替换模块205,用于将所述JS代码中的所述原始函数名称替换为所述第二函数名称。
本实施例提供的装置还包括第二筛选模块,用于在从所述JS代码中筛选出核心函数时:
从所述JS代码中筛选出部分非核心函数。
本实施例提供的装置所述预设加密算法为TEA分组加密算法,所述第二加密模块204还用于:
基于预设方法生成随机数,以所述随机数作为所述TEA分组加密算法的密钥;
根据所述调用逻辑获得所述核心函数的调用次数;
基于所述TEA分组加密算法、所述密钥、所述调用次数对所述第一函数名称进行加密,获得所述第二函数名称。
本实施例提供的装置中,所述第二加密模块204还用于:
基于所述TEA分组加密算法和所述密钥,对所述第一函数名称进行加密,获得第一加密结果;
基于所述TEA分组加密算法和所述密钥,对所述加密结果进行加密,获得第二加密结果;
获得当前的加密次数,判断所述当前的加密次数是否达到所述调用次数,
如果达到,则将所述第二加密结果作为所述第二函数名称,
如果未达到,则基于所述TEA分组加密算法和所述密钥,对所述第二加密结果进行加密,获得第三加密结果。
由于本发明实施例二所介绍的装置,为实施本发明实施例一的Web应用程序的处理方法所采用的装置,故而基于本发明实施例一所介绍的方法,本领域所属人员能够了解该装置的具体结构及变形,故而在此不再赘述。凡是本发明实施例一的方法所采用的装置都属于本发明所欲保护的范围。
实施例三
基于同一发明构思,本申请还提供了一种计算机可读存储介质300,其上存储有计算机程序311,该程序被处理器执行时实现实施一中的方法。
具体来说,上述程序被配置为可以执行下述步骤:
获取Web应用程序的JS代码;
从所述JS代码中筛选出核心函数,并获得所述核心函数的调用逻辑;
基于预设消息摘要算法对所述核心函数的原始函数名称进行加密,获得第一函数名称;
基于预设加密算法和所述调用逻辑对所述第一函数名称进行加密,获得第二函数名称;
将所述JS代码中的所述原始函数名称替换为所述第二函数名称。
实施例四
基于同一发明构思,本申请还提供了一种计算机设备,请参见图4,包括存储401、处理器402及存储在存储器上并可在处理器上运行的计算机程序403,所述处理器402执行所述程序时实现实施一中的方法。
具体来说,上述处理器被配置为可以执行下述步骤:
获取Web应用程序的JS代码;
从所述JS代码中筛选出核心函数,并获得所述核心函数的调用逻辑;
基于预设消息摘要算法对所述核心函数的原始函数名称进行加密,获得第一函数名称;
基于预设加密算法和所述调用逻辑对所述第一函数名称进行加密,获得第二函数名称;
将所述JS代码中的所述原始函数名称替换为所述第二函数名称。
本申请实施例中的上述一个或多个技术方案,至少具有如下一种或多种技术效果:
在本发明提供的方法中,获取Web应用程序的JS代码后,从JS代码中筛选出核心函数,并利用预设消息摘要算法对核心函数的原始函数名称进行了加密,由于大部分函数而言,是采用函数名称表达该函数的功能,从而通过函数名则可以知道此函数的实现功能,而本发明通过预设消息摘要算法对核心函数的名称进行了加密,因此加强了对核心函数功能的保护,也即加强了对Web应用程序的核心内容的保护,提高了Web应用程序的安全性,并且,本发明还进一步基于预设加密算法和调用逻辑对第一函数名称进行再次加密,获得第二函数名称,然后将第二函数名称替换JS代码中的所述原始函数名称,由于对核心函数的函数名称的加密与核心函数的调用逻辑有关,从而可以进一步的将函数名称与调用逻辑进行绑定,如果黑客需要获取核心函数的函数名称,则需要清楚该核心函数的调用逻辑,而不同函数的调用逻辑是不同的,也是复杂的,从而对Web应用程序中的函数名称进行了一步的保护,增加了函数名称的破解难度,有效防止了黑客获取JS代码的核心内容,故而进一步提高了安全性,由于黑客容易获取Web应用程序的核心内容而存在安全性较低的技术问题。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。
显然,本领域的技术人员可以对本发明实施例进行各种改动和变型而不脱离本发明实施例的精神和范围。这样,倘若本发明实施例的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。

Claims (6)

1.一种Web应用程序的处理方法,其特征在于,包括:
获取Web应用程序的JS代码;
从所述JS代码中筛选出核心函数,并获得所述核心函数的调用逻辑;
基于预设消息摘要算法对所述核心函数的原始函数名称进行加密,获得第一函数名称;
基于预设加密算法和所述调用逻辑对所述第一函数名称再次进行加密,获得第二函数名称;所述预设加密算法为TEA分组加密算法,所述基于预设加密算法和所述调用逻辑对所述第一函数名称进行加密获得第二函数名称,包括:基于预设方法生成随机数,以所述随机数作为所述TEA分组加密算法的密钥;根据所述调用逻辑获得所述核心函数的调用次数;基于所述TEA分组加密算法、所述密钥、所述调用次数对所述第一函数名称再次进行加密,获得所述第二函数名称;
基于所述TEA分组加密算法、所述密钥、所述调用次数对所述第一函数名称再次进行加密,获得所述第二函数名称,包括:基于所述TEA分组加密算法和所述密钥,对所述第一函数名称进行加密,获得第一加密结果;基于所述TEA分组加密算法和所述密钥,对所述加密结果进行加密,获得第二加密结果;获得当前的加密次数,判断所述当前的加密次数是否达到所述调用次数,如果达到,则将所述第二加密结果作为所述第二函数名称,如果未达到,则基于所述TEA分组加密算法和所述密钥,对所述第二加密结果继续进行加密,直到所述加密次数达到所述调用次数,将最后的加密结果作为所述第二函数名称;
将所述JS代码中的所述原始函数名称替换为所述第二函数名称。
2.如权利要求1所述的方法,其特征在于,所述方法还包括:在从所述JS代码中筛选出核心函数时:
从所述JS代码中筛选出部分非核心函数。
3.一种Web应用程序的处理装置,其特征在于,包括:
获取模块,用于获取Web应用程序的JS代码;
第一筛选模块,用于从所述JS代码中筛选出核心函数,并获得所述核心函数的调用逻辑;
第一加密模块,用于基于预设消息摘要算法对所述核心函数的原始函数名称进行加密,获得第一函数名称;
第二加密模块,用于基于预设加密算法和所述调用逻辑对所述第一函数名称再次进行加密,获得第二函数名称;
替换模块,用于将所述JS代码中的所述原始函数名称替换为所述第二函数名称;
所述预设加密算法为TEA分组加密算法,所述第二加密模块还用于:
基于预设方法生成随机数,以所述随机数作为所述TEA分组加密算法的密钥;
根据所述调用逻辑获得所述核心函数的调用次数;
基于所述TEA分组加密算法、所述密钥、所述调用次数对所述第一函数名称再次进行加密,获得所述第二函数名称;
所述基于所述TEA分组加密算法、所述密钥、所述调用次数对所述第一函数名称再次进行加密,获得所述第二函数名称,包括:基于所述TEA分组加密算法和所述密钥,对所述第一函数名称进行加密,获得第一加密结果;基于所述TEA分组加密算法和所述密钥,对所述加密结果进行加密,获得第二加密结果;获得当前的加密次数,判断所述当前的加密次数是否达到所述调用次数,如果达到,则将所述第二加密结果作为所述第二函数名称,如果未达到,则基于所述TEA分组加密算法和所述密钥,对所述第二加密结果继续进行加密,直到所述加密次数达到所述调用次数,将最后的加密结果作为所述第二函数名称。
4.如权利要求3所述的装置,其特征在于,所述装置还包括第二筛选模块,用于在从所述JS代码中筛选出核心函数时:
从所述JS代码中筛选出部分非核心函数。
5.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现如权利要求1至权利要求2任一项权利要求所述的方法。
6.一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现如权利要求1至权利要求2任一项权利要求所述的方法。
CN201810028036.9A 2018-01-11 2018-01-11 一种Web应用程序的处理方法及装置 Active CN110032866B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201810028036.9A CN110032866B (zh) 2018-01-11 2018-01-11 一种Web应用程序的处理方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201810028036.9A CN110032866B (zh) 2018-01-11 2018-01-11 一种Web应用程序的处理方法及装置

Publications (2)

Publication Number Publication Date
CN110032866A CN110032866A (zh) 2019-07-19
CN110032866B true CN110032866B (zh) 2021-06-15

Family

ID=67234293

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201810028036.9A Active CN110032866B (zh) 2018-01-11 2018-01-11 一种Web应用程序的处理方法及装置

Country Status (1)

Country Link
CN (1) CN110032866B (zh)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105205359A (zh) * 2015-10-12 2015-12-30 厦门飞信网络科技有限公司 一种JavaScript代码保护方法及装置
CN106709289A (zh) * 2016-12-09 2017-05-24 北京奇虎科技有限公司 一种对可执行文件进行加固的方法和装置
CN107122169A (zh) * 2017-03-21 2017-09-01 武汉斗鱼网络科技有限公司 一种Flash函数加密的方法及装置

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120198234A1 (en) * 2011-01-31 2012-08-02 Intuit Inc. Method and apparatus for ensuring the integrity of a downloaded data set

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105205359A (zh) * 2015-10-12 2015-12-30 厦门飞信网络科技有限公司 一种JavaScript代码保护方法及装置
CN106709289A (zh) * 2016-12-09 2017-05-24 北京奇虎科技有限公司 一种对可执行文件进行加固的方法和装置
CN107122169A (zh) * 2017-03-21 2017-09-01 武汉斗鱼网络科技有限公司 一种Flash函数加密的方法及装置

Also Published As

Publication number Publication date
CN110032866A (zh) 2019-07-19

Similar Documents

Publication Publication Date Title
TWI598765B (zh) Data protection methods and devices
CN105408912B (zh) 处理认证和资源许可
US20170116410A1 (en) Software protection
CN104318135B (zh) 一种基于可信执行环境的Java代码安全动态载入方法
JP2009529720A5 (zh)
CN105022936A (zh) 一种类class文件加密解密方法和装置
WO2019229234A1 (en) Shared secret establishment
CN104091140B (zh) 一种信息处理方法及电子设备
CN109040134B (zh) 一种信息加密的设计方法及相关装置
WO2011134207A1 (zh) 软件保护方法
CN114547558B (zh) 授权方法、授权控制方法及装置、设备和介质
CN108134673A (zh) 一种生成白盒库文件的方法及装置
US10331896B2 (en) Method of protecting secret data when used in a cryptographic algorithm
CN108075888A (zh) 动态url生成方法及装置
CN112115427A (zh) 代码混淆方法、装置、电子设备及存储介质
CN108235067B (zh) 一种视频流地址的鉴权方法及装置
CN107087002B (zh) 一种数据的加解密方法、装置及电子设备
CN110032832B (zh) 一种Web应用程序的处理方法及装置
CN110032866B (zh) 一种Web应用程序的处理方法及装置
Bahaa-Eldin et al. A comprehensive software copy protection and digital rights management platform
CN107391970B (zh) Flash应用程序中的函数访问控制方法及装置
US8683452B1 (en) Dynamically obfuscated javascript
CN112307449B (zh) 权限分级管理方法、装置、电子设备和可读存储介质
CN110032833B (zh) 一种Web应用程序的处理方法及装置
CN112434327A (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
GR01 Patent grant
GR01 Patent grant
TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20240206

Address after: Room 101-1, Building 2, No. 95 Daguan Middle Road, Tianhe District, Guangzhou City, Guangdong Province, 510000

Patentee after: Guangzhou Zhongtian Technology Consulting Co.,Ltd.

Country or region after: China

Address before: 430000 East Lake Development Zone, Wuhan City, Hubei Province, No. 1 Software Park East Road 4.1 Phase B1 Building 11 Building

Patentee before: WUHAN DOUYU NETWORK TECHNOLOGY Co.,Ltd.

Country or region before: China