[发明专利]一种动态网页程序代码的混淆加密方法及装置有效
申请号: | 201210110160.2 | 申请日: | 2012-04-13 |
公开(公告)号: | CN103377326B | 公开(公告)日: | 2017-07-11 |
发明(设计)人: | 董霙 | 申请(专利权)人: | 腾讯科技(北京)有限公司 |
主分类号: | G06F21/12 | 分类号: | G06F21/12 |
代理公司: | 北京派特恩知识产权代理有限公司11270 | 代理人: | 程立民,张颖玲 |
地址: | 100089 北京市海淀区海淀*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 动态 网页 程序代码 混淆 加密 方法 装置 | ||
技术领域
本发明涉及互联网技术领域,尤其涉及一种直接嵌入在网页中的动态网页程序代码的混淆加密方法及装置。
背景技术
对于一些将代码直接写在网页中,为网页提供动态页面效果的动态网页编程技术,例如JavaScript等,在构建网页时,对程序代码并没有做特殊处理,这样产品一旦发布出去,用户可以从网页源文件中直接完整地阅读通过此类技术实现的程序源代码,这给代码安全带来了一些隐患。
因此需要一个对此类嵌入式的动态网页程序代码进行JavaScript加密混淆的工具增加破解和阅读代码的难度,达到保护代码安全的目的。
为了增加如JavaScrip类型的动态网页程序代码的安全性,现有技术中,通常会使用一些混淆加密函数,例如escape函数,进行处理,来增加非授权用户获得代码的难度。此外,还有一些其他类型的混淆工具,例如Proguard、YUI Compressor等,能够实现对变量名的混淆。
但现有的对写在网页中的动态网页程序代码的混淆加密工具的混淆加密强度不够,很容易被用户破解,如使用escape混淆加密后的程序代码,只需要使用unescape函数就可还原出源程序。因此,现有混淆加密工具无法满足未来网页代码安全的需求。
发明内容
有鉴于此,本发明的主要目的在于提供一种动态网页程序代码的混淆加密方法及装置,用于解决现有混淆加密工具混淆加密后的结果容易被破解的技术问题。
为达到上述目的,本发明的技术方案是这样实现的:
一种动态网页程序代码的混淆加密方法,该方法包括:
识别待发布网页中的动态页面程序源代码中的变量、函数及字符串,对变量名、函数名和字符串进行混淆处理,其中,对变量名和函数名的混淆为不可逆混淆;
将混淆后的代码作为一个完整的字符串,使用加密函数,对混淆后的代码进行加密。
进一步地,所述对变量名、函数名进行混淆处理的方法为:
将变量名和函数名处理为字母x加数字的形式,使通过上述混淆处理的变量名和函数名与16进制的字符串的表达形式相似。
进一步地,所述对变量名、函数名进行混淆处理的方法为:
将变量名和函数名处理为罗马字母“o”、“l”和数字字符“0”、“1”四个字符的随机组合。
进一步地,所述对字符串的混淆方式为:
将源代码中的所有字符串转换为16进制的字符串表达方式。
进一步地,所述加密函数的加密方法为:
对输入的字符串进行逐个字符的位移操作,在位移的基础上,同时结合加密字典,对字符进行加密。
进一步地,在所述混淆和加密的基础上,进一步使用可逆混淆函数对所述混淆和加密的后的结果进行进一步地混淆。
本发明还提供一种动态网页程序代码的混淆加密装置,该装置包括:
第一混淆模块,用于识别待发布网页中的动态页面程序源代码中的变量、函数及字符串,对变量名、函数名和字符串进行混淆处理,其中,对变量名和函数名的混淆为不可逆混淆;
加密模块,用于将经第一混淆模块混淆后的代码作为一个完整的字符串,使用加密函数,对混淆后的代码进行加密。
进一步地,所述第一混淆模块对变量名、函数名进行混淆处理时,将变量名和函数名处理为字母x加数字的形式,使混淆处理后的变量名和函数名与16进制的字符串的表达形式相似。
进一步地,所述第一混淆模块对变量名、函数名进行混淆处理时,将变量名和函数名处理为罗马字母“o”、“l”和数字字符“0”、“1”四个字符的随机组合。
进一步地,所述第一混淆模块对所述字符串进行混淆时,将源代码中的所有字符串转换为16进制的字符串表达方式。
进一步地,所述加密模块对输入的字符串进行逐个字符的位移操作,在位移的基础上,同时结合加密字典,对字符进行加密。
进一步地,所述装置还包括:
第二混淆模块,用于在第一混淆模块输出的混淆结果的基础上,进一步使用可逆混淆函数对所述混淆和加密的后的结果进行进一步地混淆。
本发明通过采用多层混淆加密过程增加了程序的破解和还原难度,同时本发明中针对函数和变量的混淆加密是不可逆的,能给源代码最有力的保护。本发明很好的解决了现有混淆加密工具对动态网页程序代码的混淆加密结果容易被破解的技术问题,提供了动态网页代码的安全性。
附图说明
图1为本发明提供的动态网页程序代码的混淆加密方法流程图;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于腾讯科技(北京)有限公司,未经腾讯科技(北京)有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201210110160.2/2.html,转载请声明来源钻瓜专利网。