独家供稿:移动Labs

HTML5应用采用的仍然是Javascript(JS)、HTML、CSS 等Web语言,因而其代码保护就是这些Web代码的保护,而HTML5应用主要功能一般采用JS实现,因此JS代码就成了保护重点。
然而,似乎Web语言的设计者们根本没考虑过保护代码,或许因为他们认为互联网的核心价值不是代码,而是业务数据、是流量,这样更有利于互联网Web服务的发展。
    但开发者似乎不这么认为。我和开发者交流BAE/Widget/HTML5等话题时,必不可少的问题就是如何保护代码。代码保护是许多Web开发者的一块心病。
Web语言是解析执行,即代码需要明文下载到客户端(如浏览器),同时可以很容易的进行调试,因而代码保护比较困难。
    当然,也有一些解决方案是将Web代码编译成二进制文件(如下图),但由于这方面没有业界规范,因而需要客户端支持该文件的解析,其通用性成问题。
 
    目前PhoneGap之类的混搭应用模式(native+html5)大行其道,给了这种代码保护方法很好的生存环境。即:可以将负责解析经过加密或编译的Web代码与解析模块一起打包成Native应用。
    当然,最流行、折中的HTML5代码保护办法仍代码混淆,而由于应用的主要功能一般通过JS实现,因而这里主要介绍JS代码的混淆。
    代码混淆简单地说是对代码进行重新组织和处理,使得处理后的代码与处理前代码完成相同的功能,但难以阅读。一般代码混淆器会将代码中的所有变量、函数、类的名称变为简短的英文字母代号,删去代码注释。
    JS代码混淆器主要是主要分在线和离线两大类。一般开发者比较倾向离线代码混淆器(因为使用在线混淆器需要将代码提交到网站上),这里介绍几个比较不错的,供参考:
 
1.Jasob
网址:http://www.jasob.com/
功能强,能对Javascript、HTML、CSS文件进行混淆,可以选择变量的混淆程度等各种功能。当然也具有非常强的代码压缩能力。
但是,但是,是收费的共享软件,没用几天就过期了。。。
各位如果有免费使用的各种方法,别忘了和我分享。
 
2.Javascript Obfuscator
网址:http://www.javascript-source.com/javascript-obfuscator.html
支持JS混淆和代码压缩,简单好用。各种编码字符替换,混淆的代码更加晦涩。
但是、但是,也是收费的共享软件,而且不支持中文字符集,不知是否因为是试用版本。
3. YUI Compressor
网址:http://yuilibrary.com/projects/yuicompressor/
Yahoo出品的混淆压缩工具,据说jQuery就是用它混淆压缩的。免费、免费!
但是、但是,质量一般,还是用命令行的。 也有兄弟基于它做了可视化版本:
http://cloud.github.com/downloads/tinyms/jscompressor/JsCompressor.exe
    不过无论是代码混淆还是编译,都是防君子不防小人。因为,即使JAVA、C#等编译型语言,都可以反编译出非常易读的代码。
 

HTML5漫谈(7)——如何保护HTML5应用代码的更多相关文章

  1. 关于html5与jsp页面同样的html代码展示的页面效果不一样的问题

    原文:关于html5与jsp页面同样的html代码展示的页面效果不一样的问题 html5默认的声明为 <!DOCTYPE html> jsp默认的声明头部为 <%@ page con ...

  2. HTML5 Maker – 在线轻松制作 HTML5 动画效果

    HTML5 Maker 是一个在线动画制作工具,帮助你使用 HTML,CSS 和 JavaScript 创建动态,互动的内容.它非常容易使用,同时可以帮你实现非常好的效果.它可以制作跨浏览器的动画内容 ...

  3. 5个常用Java代码混淆器 助你保护你的代码

    [IT168 技术文档] 从事Java编程的人都知道,可以通过逆向工程反编译得到Java程序的源代码,这种反编译工具之一就是JAD.因此,为保护我们的劳动成果,尽可能给反编译人员制造障碍,我们可以使用 ...

  4. 10款很酷的HTML5动画和实用的HTML5应用

    1.HTML5的画布花朵生成器可生成多种样式的花朵 HTML5非常流行,利用HTML5制作动画也非常方便,今天要分享一款利用HTML5 Canvas制作的花朵生成器,我们只需要在Canvas画布上点击 ...

  5. [Mugeda HTML5技术教程之1] HTML5: 生存还是毁灭

    [Mugeda HTML5技术教程] 开篇: HTML5 - 生存,还是毁灭 摘要:HTML5并不试图解决所有问题.但是在很多适合的场合,HTML5是不二选择. To be, or not to be ...

  6. 浅谈Android保护技术__代码混淆

    浅谈Android保护技术__代码混淆   代码混淆 代码混淆(Obfuscated code)亦称花指令,是将计算机程序的代码,转换成一种功能上等价,但是难于阅读和理解的形式的行为.将代码中的各种元 ...

  7. IT兄弟连 HTML5教程 HTML5的曲折发展过程 HTML5的诞生

    十年磨一剑,正如我们所看到的一样,HTML5大潮正来势汹汹.但也正如我们所知道的一样,HTML5是一种技术标准,它的语义之美.人性之美.简单之美.实用之美……如同一场革命,它的主要应用场景是浏览器,不 ...

  8. html5手机端遮罩弹出菜单代码

    效果体验:http://hovertree.com/texiao/html5/17/ 效果图: 代码如下: <!doctype html> <html lang="zh&q ...

  9. 《HTML5经典坦克大战》游戏(代码)

    前几天粗略地学了HTML5,然后就用它写了一个<经典坦克大战>游戏. 现在想分享一下我写的代码,写得不好请大家多多指教. 给大家推荐一个网站,这个网站是为大学生而做,为方便学习编程的同学而 ...

随机推荐

  1. codeforces 461div.2

    A Cloning Toys standard input/output 1 s, 256 MB     B Magic Forest standard input/output 1 s, 256 M ...

  2. node-删除对象中指定属性失效问题-JSON.parse实例化

    需求描述: 删除 _body 对象里的 code 字段.用 detele 删除后输出的_body 里仍有 code 字段. body是从后台得到的json串,所以要先 parse 转换成对象,本以为 ...

  3. redis-3.2.11哨兵模式的配置

    设置内核参数: echo never > /sys/kernel/mm/transparent_hugepage/enabled > /proc/sys/vm/overcommit_mem ...

  4. 使用python脚本批量删除阿里云oss中的mp4文件

    #encoding:utf-8 ''' oss中有一些mp4文件需要删除,首先定位出这些文件放在txt文本中 然后通过python操作oss进行批量删除 ''' import oss2 auth = ...

  5. Light OJ 1009

    题意: 给你一个二分图, (可能不连通) 求可能多的子集元素个数: 思路: 直接DFS 给二分图染色就有了, 统计联通块中个数, 去最大值相加即可. #include<bits/stdc++.h ...

  6. linux shell 数组建立及使用技巧

    参考网址:http://www.cnblogs.com/chengmo/archive/2010/09/30/1839632.html linux shell在编程方面比windows 批处理强大太多 ...

  7. REST风格接口测试利器Wisdom rest-client

    前言 偶然间接触到Wisdom rest-client这款测试工具,后来经过尝试体验,感觉还不错,现在分享给大家,如何使用这款测试利器 Wisdom rest-client是什么? Wisdom re ...

  8. [C][代码实例]冒泡排序

    #include <stdio.h> #include <stdlib.h> #include <stdbool.h> #include <string.h& ...

  9. workflow的简介

    工作流(Workflow) 是对工作流程及其各操作步骤之间业务规则的抽象.概括描述.工作流建模,即将工作流程中的工作如何前后组织在一起的逻辑和规则,在计算机中以恰当的模型表达并对其实施计算. 工作流要 ...

  10. mysql优化——show processlist命令详解

    SHOW PROCESSLIST显示哪些线程正在运行 不在mysql提示符下使用时用mysql -uroot  -e 'Show  processlist'   或者   mysqladmin pro ...