一种JavaScript代码保护方法及装置的制造方法_3

文档序号:9453336阅读:来源:国知局
名称和/或函数名 称,进而得到替换后源代码。其中预置字符串是由数字〇、数字1、小写字母〇、小写字母1、 大写字母〇组成的一定长度的名称,如110、1〇0、11〇0,起到混淆代码的作用,增加阅读代码 的难度。
[0057] 以及,加密模块330适于对所述替换后源代码中的代码片段进行加密,获取加密 后源代码。实际操作中,加密模块330又包括:适于定义加密算法的偏移量的存储子模块 332、适于将代码片段中所有字符值进行偏移的加密子模块334、和适于采用预定函数替换 加密代码片段的标识子模块336。根据一种实施方式,加密模块330还可以包括迭代子模块 338,适于对该代码片段进行多次迭代加密。在基于图2的描述中,已经给出了关于代码片 段加密算法的详细过程以及示例,此处将不再赘述。
[0058] 并且,校验模块340适于判断加密后的代码片段是否被篡改,若没有则将所述加 密后源代码作为受保护的源代码。具体判断方法是,校验模块340适于判断加密后的代码 片段中字符串长度是否等于预置长度,若等于则没有被篡改;或者,校验模块340还适于判 断加密后的代码片段中指定位的字符是否等于预置字符,若等于则没有被篡改,若不等于 时,则返回NULL或者返回该函数以中断函数调用,由于JavaScript代码的特殊性,此时代 码并不会报错,进而达到混淆的目的。
[0059]应当理解,为了精简本公开并帮助理解各个发明方面中的一个或多个,在上面对 本发明的示例性实施例的描述中,本发明的各个特征有时被一起分组到单个实施例、图、或 者对其的描述中。然而,并不应将该公开的方法解释成反映如下意图:即所要求保护的本发 明要求比在每个权利要求中所明确记载的特征更多特征。更确切地说,如下面的权利要求 书所反映的那样,发明方面在于少于前面公开的单个实施例的所有特征。因此,遵循具体实 施方式的权利要求书由此明确地并入该【具体实施方式】,其中每个权利要求本身都作为本发 明的单独实施例。
[0060] 本领域那些技术人员应当理解在本文所公开的示例中的设备的模块或单元或组 件可以布置在如该实施例中所描述的设备中,或者可替换地可以定位在与该示例中的设备 不同的一个或多个设备中。前述示例中的模块可以组合为一个模块或者此外可以分成多个 子模块。
[0061] 本领域那些技术人员可以理解,可以对实施例中的设备中的模块进行自适应性地 改变并且把它们设置在与该实施例不同的一个或多个设备中。可以把实施例中的模块或单 元或组件组合成一个模块或单元或组件,以及此外可以把它们分成多个子模块或子单元或 子组件。除了这样的特征和/或过程或者单元中的至少一些是相互排斥之外,可以采用任 何组合对本说明书(包括伴随的权利要求、摘要和附图)中公开的所有特征以及如此公开 的任何方法或者设备的所有过程或单元进行组合。除非另外明确陈述,本说明书(包括伴 随的权利要求、摘要和附图)中公开的每个特征可以由提供相同、等同或相似目的的替代 特征来代替。
[0062]A6、如A1-5中任一项所述的方法,其中判断加密后的代码片段是否被篡改的步骤 包括:判断加密后的代码片段中字符串长度是否等于预置长度,若等于则没有被篡改。A7、 如A1-6中任一项所述的方法,其中判断加密后的代码片段是否被篡改的步骤还包括:判断 加密后的代码片段中指定位的字符是否等于预置字符,若等于则没有被篡改。
[0063]B13、如B8-12中任一项所述的装置,其中,校验模块适于判断加密后的代码片段 中字符串长度是否等于预置长度,若等于则没有被篡改。B14、如B8-13中任一项所述的装 置,其中,校验模块还适于判断加密后的代码片段中指定位的字符是否等于预置字符,若等 于则没有被篡改。
[0064] 此外,本领域的技术人员能够理解,尽管在此所述的一些实施例包括其它实施例 中所包括的某些特征而不是其它特征,但是不同实施例的特征的组合意味着处于本发明的 范围之内并且形成不同的实施例。例如,在下面的权利要求书中,所要求保护的实施例的任 意之一都可以以任意的组合方式来使用。
[0065]此外,所述实施例中的一些在此被描述成可以由计算机系统的处理器或者由执行 所述功能的其它装置实施的方法或方法元素的组合。因此,具有用于实施所述方法或方法 元素的必要指令的处理器形成用于实施该方法或方法元素的装置。此外,装置实施例的在 此所述的元素是如下装置的例子:该装置用于实施由为了实施该发明的目的的元素所执行 的功能。
[0066] 如在此所使用的那样,除非另行规定,使用序数词"第一"、"第二"、"第三"等等来 描述普通对象仅仅表示涉及类似对象的不同实例,并且并不意图暗示这样被描述的对象必 须具有时间上、空间上、排序方面或者以任意其它方式的给定顺序。
[0067]尽管根据有限数量的实施例描述了本发明,但是受益于上面的描述,本技术领域 内的技术人员明白,在由此描述的本发明的范围内,可以设想其它实施例。此外,应当注意, 本说明书中使用的语言主要是为了可读性和教导的目的而选择的,而不是为了解释或者限 定本发明的主题而选择的。因此,在不偏离所附权利要求书的范围和精神的情况下,对于本 技术领域的普通技术人员来说许多修改和变更都是显而易见的。对于本发明的范围,对本 发明所做的公开是说明性的,而非限制性的,本发明的范围由所附权利要求书限定。
【主权项】
1. 一种JavaScript代码保护方法,所述方法包括步骤: 获取源代码中的变量名称,根据映射规则用预置字符串代替变量名称,获取替换后源 代码; 对所述替换后源代码中的代码片段进行加密,获取加密后源代码;以及 判断所述加密后的代码片段是否被篡改,若没有则将所述加密后源代码作为受保护的 源代码。2. 如权利要求1所述的方法,其中所述获取替换后源代码的步骤还包括: 获取源代码中的函数名称,根据映射规则用预置字符串代替函数名称,获取替换后源 代码。3. 如权利要求1或2所述的方法,其中所述预置字符串是由数字0、数字1、小写字母 〇、小写字母1、大写字母O组成。4. 如权利要求1-3中任一项所述的方法,其中所述对替换后源代码中的代码片段进行 加密的步骤包括: 定义加密算法的偏移量; 将所述代码片段中的所有字符值偏移所述偏移量;以及 采用预定函数替换所述加密代码片段。5. 如权利要求4所述的方法,还包括步骤: 重复所述加密步骤,对所述代码片段进行多次迭代加密。6. -种JavaScript代码保护装置,所述装置包括: 获取模块,适于获取JavaScript代码作为源代码,以及获取源代码中的变量名称; 替换模块,适于根据映射规则用预置字符串代替变量名称,得到替换后源代码; 加密模块,适于对所述替换后源代码中的代码片段进行加密,获取加密后源代码;以及 校验模块,适于判断所述加密后的代码片段是否被篡改,若没有则将所述加密后源代 码作为受保护的源代码。7. 如权利要求6所述的装置,其中: 所述获取模块还适于获取源代码中的函数名称;以及 所述替换模块还适于根据映射规则用预置字符串代替函数名称,获取替换后源代码。8. 如权利要求6或7所述的装置,其中所述预置字符串是由数字0、数字1、小写字母 〇、小写字母1、大写字母0组成。9. 如权利要求6-8中任一项所述的装置,其中所述加密模块还包括: 存储子模块,适于定义加密算法的偏移量; 加密子模块,适于将所述代码片段中的所有字符值偏移所述偏移量;以及 标识子模块,适于采用预定函数替换所述加密代码片段。10. 如权利要求9所述的装置,其中所述加密模块还包括: 迭代子模块,适于对所述代码片段进行多次迭代加密。
【专利摘要】本发明公开了一种JavaScript代码保护方法,该方法包括步骤:获取源代码中的变量名称,根据映射规则用预置字符串代替变量名称,获取替换后源代码;对替换后源代码中的代码片段进行加密,获取加密后源代码;以及判断加密后的代码片段是否被篡改,若没有则将加密后源代码作为受保护的源代码。
【IPC分类】G06F21/14
【公开号】CN105205359
【申请号】CN201510659179
【发明人】黄庆铖, 林志斌
【申请人】厦门飞信网络科技有限公司
【公开日】2015年12月30日
【申请日】2015年10月12日
当前第3页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1