js文件加密壓縮
⑴ 如何壓縮js文件
js文件,據我所知應該是javaScript的腳本文件,這種文件本身就是全文本,跟TXT文件差不多,應該不需要壓縮了呀。。
⑵ 壓縮後的JS代碼怎樣解壓縮
一般壓縮都經過混淆,如果你看到變數名都是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是壓縮還是加密
有壓縮加密,有加密,有壓縮,加密一般由eval開頭
⑸ js加密壓縮該怎麼實現,有源代碼和例子的最好
加密演算法可以採用CryptoJS
至於說壓縮和編碼有很大的關系,可以參考下zip77的編碼表
例如:
符號 A B C D E
_____________________________________________
編碼 0 10 110 1110 11110
再通過自己定義的編碼表進行解碼,位數越少越好,我這暫時想到的思路是類似base64
假設a+b小於64那就把a和b的keycode合並,並加上一個開始標記,如果後續的大於64就採用結束標記
壓縮的總體思想是低位字元向高位轉,甚至允許的話用中文來進行編碼壓縮,因為中文是由兩個半形字元描述的
⑹ 有關js壓縮,加密的事~急求!!!
壓縮,顧名思義,把
JS
文件壓到底,這樣瀏覽器下下來速度快了,網頁響應也就快了。
加密,也是一樣,不想讓人知道到底是在幹嘛。
eval
就是把文本當成代碼執行,比如:
eval
('alert
("彈信息框");');
就等於執行了
alert
("彈信息框");
⑺ js中,我將這個js文件壓縮,再引入,或者調用,會不會受到影響
不會。壓縮了只是減小了文件的大小,運行的時候沒有影響
⑻ 求助前端JS都是用什麼加密的
寫過 js混淆器,談一些淺顯的個人看法。
個人認為,js的不可讀化處理分為三個方面:壓縮(compression)、混淆(obfuscation) 和加密(encryption)。 (不可讀化處理,這是我自己發明的術語,一切會增加代碼不可讀性的代碼轉換, 都可以這么叫,「增加代碼不可讀性」可能是代碼轉換的結果或者目的).
1. 壓縮
這一操作的目的,是讓最終代碼傳輸量 (不代表代碼量, 也不代表文件體積)盡可能小。壓縮js的工具,常見的有:YUI Compressor、UglifyJS、Google Closure Compiler 等。
通常在代碼壓縮的過程中,只改變代碼的語法,代碼的語義和控制流不會有太大改變。
常見做法是把局部變數縮短化,把一些運算進行等價替換等。代碼壓縮對於代碼保護有一些幫助,但由於語義和控制流基本沒變,起不了太大作用。
在壓縮層面上,代碼不可讀只是一種附帶傷害,不是最終目的。
2. 混淆
這一操作的目的,是讓代碼盡可能地不可讀,主要用作代碼保護。
讓代碼不可讀,增加分析的難度,這是唯一目的。混淆過後文件體積變大一倍也沒關系,代碼量變多也沒關系,運算慢50% 也沒關系。
常見的做法有:分離常量、打亂控制流、增加無義代碼、檢查運行環境如果不對就罷工,等等。
在混淆層面上,代碼不可讀是最終目的。
值得一提的是,Google Closure Compiler 的 Advance Level Compression 會壓縮類和對象的成員,其壓縮結果很難分析,也可以認為是一種混淆,但兼容性不太好。
廣告時間:我寫的 js混淆器,中文名叫 「看起來很厲害的 JS 編譯器」, 英文名叫做 The Impressive JS.Segment.Compiler , 看起來很厲害的 JS 編譯器 。
3. 加密
說實話我很難對加密做一個定義,因為加密在Web界有太多歧義了。
有加密就有解密,意味著加密操作可逆,密文可以明文化。
就這樣看來,在Web界,可以稱之為加密的東西包括:HTTPS傳輸、JavaScript實現對稱加密或者不對稱加密等等。
這樣看來,不可逆的代碼壓縮和混淆就不能列入加密這個范疇了。
非要找一個可以稱之為加密,又經常被人誤解為壓縮和混淆的東西,Dean Edwards 的 Dean Packer/Unpacker 可以拿來做個例子。
比如我們把 var num=1;alert(num);
輸入 Dean Packer,pack 一下,得到這么一串東西,是不是看著非常像被壓縮和混淆過的代碼?
把上面那串意義不明物拿來 unpack 一下,得到了原文。
實際上 Dean Packer 只是對源碼進行了一個字元串變換,沒有深入到代碼語法層面,你可以拿 "Hello world, 你好師姐" 來試試。
用Online JavaScript beautifier 能輕松把這串東西還原為 「Hello world, 你好師姐」。
可以看出,代碼加密意味著:將代碼明文進行可逆的變換(加密),生成密文;將密文進行逆變換(解密),可以還原明文;最終運行環境運行的是解密代碼。
結語
實際上大家對壓縮、混淆、加密這三個概念還是挺不清晰的,我在這里說一些個人見解,希望有幫助。
在現實項目中,我是多種手段結合的:
對於不需要做代碼保護的項目,比如個人博客,做代碼壓縮,加快載入速度,這就夠了。
對於需要做一些代碼保護,防止抄襲的項目,可以在源碼中加入一些開發者的信息和防護代碼,然後混淆和壓縮。很不幸的是,我這方面總是做得不太好,防君子防不了小人啊哈哈。
對於需要嚴格加密的項目,可以用 混淆、壓縮、加密、簽名檢查 等多種手段,這我就不清楚了,等大嬸來補充。
⑼ 如何使用nodejs 的 uglifyjs 壓縮js文件
一、下載並安裝NodeJS for Windows 0.6.5 或進入NodeJS官網下載最新版本。
二、查看版本:
運行cmd
node -v
npm -v
如果上訴兩個命令出錯,請打開系統環境變數Path,直接點確定。再試。
三、安裝UglifyJS 這里我們安裝最新的版本,具體版本可在npm官網查看,uglify-js版本頁面。
npm install uglify-js -g
然後等待命令完成,這個過程時間可能有點長。
如果出錯請刪除
C:\Users\Administrator\AppData\Roaming\npm 內相關內容
C:\Users\Administrator\AppData\Roaming\npm-cache 內相關內容
C:\Users\Administrator 下的錯誤信息文件
然後再次運行
四、修改配置
上述安裝後自動生成的配置文件是不可直接使用的,我們需要手工去修改。
打開C:\Users\Administrator\AppData\Roaming\npm\uglifyjs.cmd
內容為:
:: Created by npm, please don't edit manually.
"%~dp0\.\node_moles\uglify-js\bin\uglifyjs" %*
修改為:
:: Created by npm, please don't edit manually.
@IF EXIST "%~dp0"\"node.exe" (
"%~dp0"\"node.exe" "%~dp0\.\node_moles\uglify-js\bin\uglifyjs" %*
) ELSE (
node "%~dp0\.\node_moles\uglify-js\bin\uglifyjs" %*
)
五、使用uglifyjs對javascript進行壓縮美化
壓縮:
uglifyjs f.js > f.min.js
美化:
uglifyjs -b f.min.js > f.b.js
⑽ 如何壓縮javascript和css文件
一、壓縮html和javascript:
我們用站長工具的JavaScript-HTML格式化工具,我們打開頁面,我今天要壓縮的文件js文件:common.js ,把js代碼復制到到JavaScript/HTML格式化工具裡面如下圖所示:
點擊下面的「普通壓縮」和「加密壓縮」按鈕,經過我的精心測試,使用「加密壓縮」,對文件壓縮率是最好的,所以點擊「加密壓縮」,壓縮後如圖:
javascript代碼壓縮後,我們就把這些代碼在復制到common.js文件裡面,在吧這個文件上傳到空間原來的位置,進行訪問是否存在一些錯誤,如果沒有什麼問題說明壓縮成功;
我的common.js 文件壓縮前和壓縮後的對比:
壓縮前:
壓縮後:
文件壓縮前和壓縮後確實有明確的減少,說明壓縮確實減少文件的大小,
我們來測試文件壓縮前和壓縮後所有能的時間做對比(我是用火狐插件測試傳輸速度):
壓縮前所用時間:
壓縮後所用時間:
壓縮前所用時間是:125ms,壓縮後所用時間:78ms ,文件壓縮後給我們節省大量的時間,如果每個js都進行壓縮,我們房子訪問速度會更快的。
(註:html文件和javascript壓縮原來一樣的,當時壓縮html要用到「普通壓縮」按鈕壓縮)
二、壓縮css文件:
我們打開站長工具的Css壓縮/格式化工具頁面,我要壓縮的文件是五色旗保健品商城的css主文件style.css,首先我們打開站長工具的Css壓縮/格式化工具頁面 ,把style.css 代碼放到Css壓縮/格式化工具裡面,如下圖所示:
點擊「壓縮代碼」按鈕後,css代碼壓縮成功,如下圖所示:
後邊就是壓縮後的css代碼,你要不右邊的代碼復制到源文件style.css裡面在上傳到伺服器空間裡面,在訪問一下網,看看網頁樣式有沒有改變,如果有點變化就需要簡單的調試一下,如果沒有變樣,說明你的css壓縮成功了;
下面我們來看看styl.css文件壓縮前和壓縮後的大小和放在訪問速度的大小:
文件大小對比:
壓縮前:
壓縮後:
壓縮前30kb,壓縮後23kb,明顯的文件大小減小了
壓縮前所用時間:
css壓縮前的時間.jpg (7.36 KB, 下載次數: 0)
下載附件
css壓縮前的時間.jpg
2013-11-2 00:35 上傳
壓縮後所用時間:
壓縮前所用時間是:188ms,壓縮後所用時間:93ms ,css壓縮後明顯的節省了95ms;
總結:一個大的網站可能會有很多的javascript和css,如果沒有都進行壓縮的話,一定會減少很多文件大小的,其實減少文件大少並不是很重要,最重要的是,文件容量減少了,能夠快速的提高網站訪問的速度,給用戶帶來好的體驗,我們盡量的把文件壓縮到最小,這樣才有利於用戶快速的打開網站,至此我的五色旗保健品商城優化後,我的每天的訪問量也增加了很多。