压缩后的JS代码怎样解压缩?

JavaScript011

压缩后的JS代码怎样解压缩?,第1张

一般压缩都经过混淆,如果你看到变量名都是A,B,C,D之类的无规则的命名,那就是被混淆过的,一般来说也很难阅读,就算你 还原了格式。

如果是没有混淆的,你可以试试用js的格式化工具来重新格式化一下的,比如:

/* 美化:格式化代码,使之容易阅读 */

/* 净化:去掉代码中多余的注释、换行、空格等 */

/* 压缩:将代码压缩为更小体积,便于传输 */

/* 解压:将压缩后的代码转换为人可以阅读的格式 */

/* 混淆:将代码的中变量名简短化以减小体积,但可读性差,经混淆后的代码无法还原 */

/* 如果有用,请别忘了推荐给你的朋友: */

/* javascript在线美化、净化、压缩、解压:http://tool.lu/js */

/* 以下是演示代码 */

var Inote = {}

Inote.JSTool = function(options) {

this.options = options || {}

}

Inote.JSTool.prototype = {

_name: 'Javascript工具',

_history: {

'v1.0': ['2011-01-18', 'javascript工具上线'],

'v1.1': ['2012-03-23', '增加混淆功能'],

'v1.2': ['2012-07-21', '升级美化功能引擎'],

'v1.3': ['2014-03-01', '升级解密功能,支持eval,window.eval,window["eval"]等的解密'],

'v1.4': ['2014-08-05', '升级混淆功能引擎'],

'v1.5': ['2014-08-09', '升级js压缩引擎'],

'v1.6': ['2015-04-11', '升级js混淆引擎']

},

options: {},

getName: function() {return this._name},

getHistory: function() {

return this._history}

}

var jstool = new Inote.JSTool()

其实破解这些加密JS特别简单

甚至有些JS的加密不是为了加密而加密,而是为了节省流量做的另类“压缩”

不管是什么加密方法,千奇百怪还是如何,都需要浏览器来运行它吧,只要浏览器能够运行,那我们就能够用很多种办法“还原”它,并看到它的真面目。

你的代码“包括网盘”上的,都不行,因为运行时缺少其它必要的变量,其实最理想的获得状态是在代码可以运行的时候,比如你是在哪里看到的代码,直接运行该网站,然后使用opera浏览器打开它。

打开之后,在该页面下单击右键、检查元素,

会打开opera的开发者工具

在开发者工具里,点击脚本,在脚本中,你可以看到“破解”过后的JS脚本。

嗯,就这么简单,但前提是你的JS没有错误发生,而你的JS显然不行,它需要一个外部变量(ddlmc),这个变量可能是位于原网页中或原网页的其它 JS文件中,没有它,Opera也无能为力,其它破解手段也应该可以,但比较这个,要麻烦许多。

也正因为我用习惯了Opera的这个功能,其它破解手段,我没去钻研过。

项目用到了jszip.js插件,用于在后台获取zip文件,前端解压并将模型进行在线显示.官网jszip的API说明为英文,例子其实也有些模糊. 远程加载一个文件, 使用官网的例子 :(自行观看) 这里作为笔记,主要是想说 promise.then(JSZip.loadAsync) .then(function( zip ){returnzip.file("Hello.txt").async("string")     此处可以返回一个值,返回的值就是下一个.then的实参 })这里的zip就是读取到的zip的数据,主要的属性诸如files就是zip中的文件,可以通过zip.file(filename)的形式将该文件对象进行存储,但是这里的文件对象其实是一个promise,当我们需要使用的时候可以通过.then 的形式使用 例如: pic.then(function(data){             //data就是该文件的数据,得到data后可以通过使用,这里就需要注意我们在存储的时候可以通过使用zip.file(filename).async(数据形式)来定义数据的存储形式,例如base64,blob,arraybuffer,其中base64是图片的存储格式,但是是没有前缀的,必须加相应的前缀才可以显示.data:image/pngbase64就可以直接赋值给image.src })