導航:首頁 > 文檔加密 > js代碼不可逆加密

js代碼不可逆加密

發布時間:2022-08-17 06:42:11

㈠ JS加密方法

本文一共介紹了七種方法:
一:最簡單的加密解密
二:轉義字元""的妙用
三:使用Microsoft出品的腳本編碼器Script Encoder來進行編碼 (自創簡單解碼)
四:任意添加NUL空字元(十六進制00H) (自創)
五:無用內容混亂以及換行空格TAB大法
六:自寫解密函數法
七:錯誤的利用 (自創)

在做網頁時(其實是網頁木馬呵呵),最讓人煩惱的是自己辛辛苦苦寫出來的客戶端IE運行的JAVASCRIPT代碼常常被別人輕易的拷貝,實在讓自己的心裡有點不是滋味,要知道自己寫點東西也挺累的......^*^

但我們也應該清楚地認識到因為JAVASCRIPT代碼是在IE中解釋執行,要想絕對的保密是不可能的,我們要做的就是盡可能的增大拷貝者復制的難度,讓他知難而退(但願~!~),下面我結合自己這幾年來的實踐,及個人研究的心得,和大家一起來探討一下網頁中JAVASCRIPT代碼的加密解密技術。

以加密下面的JAVASCRIPT代碼為例:
<SCRIPT LANGUAGE="JavaScript">
alert("《黑客防線》");
</SCRIPT>

一:最簡單的加密解密

大家對於JAVASCRIPT函數escape()和unescape()想必是比較了解啦(很多網頁加密在用它們),分別是編碼和解碼字元串,比如例子代碼用escape()函數加密後變為如下格式:
alert%28%22%u9ED1%u5BA2%u9632%u7EBF%22%29%3B

如何?還看的懂嗎?當然其中的ASCII字元"alert"並沒有被加密,如果願意我們可以寫點JAVASCRIPT代碼重新把它加密如下:
%61%6C%65%72%74%28%22%u9ED1%u5BA2%u9632%u7EBF%22%29%3B

呵呵!如何?這次是完全都加密了!

當然,這樣加密後的代碼是不能直接運行的,幸好還有eval(codeString)可用,這個函數的作用就是檢查JavaScript代碼並執行,必選項 codeString 參數是包含有效 JavaScript 代碼的字元串值,加上上面的解碼unescape(),加密後的結果如下:
<SCRIPT LANGUAGE="JavaScript">
var code=unescape("%61%6C%65%72%74%28%22%u9ED1%u5BA2%u9632%u7EBF%22%29%3B");
eval(code)
</SCRIPT>

是不是很簡單?不要高興,解密也就同樣的簡單,解密代碼都擺給別人啦(unescape())!呵呵

二:轉義字元""的妙用

大家可能對轉義字元""不太熟悉,但對於JavaScript提供了一些特殊字元如:n (換行)、 r (回車)、' (單引號 )等應該是有所了解的吧?其實""後面還可以跟八進制或十六進制的數字,如字元"a"則可以表示為:"141"或"x61"(注意是小寫字元"x"),至於雙位元組字元如漢字"黑"則僅能用十六進製表示為"u9ED1"(注意是小寫字元"u"),其中字元"u"表示是雙位元組字元,根據這個原理例子代碼則可以表示為:

八進制轉義字元串如下:
<SCRIPT LANGUAGE="JavaScript">
eval("")
</SCRIPT>

十六進制轉義字元串如下:
<SCRIPT LANGUAGE="JavaScript">
eval("")
</SCRIPT>

這次沒有了解碼函數,因為JavaScript執行時會自行轉換,同樣解碼也是很簡單如下:
<SCRIPT LANGUAGE="JavaScript">
alert("")
</SCRIPT>

就會彈出對話框告訴你解密後的結果!

㈡ 關於JS加密,這個是什麼加密方式如何進行加密和解密

7種加密方式:http://www.codesky.net/article/200911/165731.html

㈢ 如何破解JS腳本加密

在網頁中加入一個,然後在加密代碼中找document.write(),eval(),execScript()或VBS的EXECUTE語句,並用document.getElementById("textareaID").innerText=STR 替換。加密就不攻自破了。www.hrbfc120.com
(STR是轉換好的字元串變數,如在加密代碼中找到 document.write(s); 就用 document.getElementById("textareaID").innerText=s; 替換)

㈣ 怎麼加密js代碼

可以在網上搜索一下js的在線加密工具。
js真正可以加密的方法很少,大多數方法只能壓縮混淆代碼。

㈤ 如何實現js代碼MD5加密,傳到後台C#中再解密

沒法,md5加密會生產16位或者32位字元串,不同個數的空格產生的md5碼不同,因為加密不可逆,到後台根本沒法判斷。
其實密碼輸入空格也無大礙,這樣反而可以提高密碼安全性(試問哪個黑客會料到你的密碼是10個空格...)
如果你struts2必須校驗密碼空格的話,那隻能使用雙向加密技術了,在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, 你好師姐」。

可以看出,代碼加密意味著:將代碼明文進行可逆的變換(加密),生成密文;將密文進行逆變換(解密),可以還原明文;最終運行環境運行的是解密代碼。

結語

實際上大家對壓縮、混淆、加密這三個概念還是挺不清晰的,我在這里說一些個人見解,希望有幫助。

在現實項目中,我是多種手段結合的:

對於不需要做代碼保護的項目,比如個人博客,做代碼壓縮,加快載入速度,這就夠了。
對於需要做一些代碼保護,防止抄襲的項目,可以在源碼中加入一些開發者的信息和防護代碼,然後混淆和壓縮。很不幸的是,我這方面總是做得不太好,防君子防不了小人啊哈哈。
對於需要嚴格加密的項目,可以用 混淆、壓縮、加密、簽名檢查 等多種手段,這我就不清楚了,等大嬸來補充。

㈦ 求助!以下Js代碼使用什麼方法加密的,怎麼解密!求高手!!!!!!!!!!!

js加密的方法比較多。但是我看著你這個不像是js加密倒像是php加密。呵呵,要是有全部的源碼就好了。
各種加密解密的方法下面的參考資料網址裡面有,你不妨去看看。

㈧ 如何對JS代碼加密

JS加密其實就是對字元進行編碼,也不是一定要用工具 有兩個函數的 ")+"");

㈨ 怎樣對html+js代碼進行不可逆加密

雙層或者多層加密,別人破開的幾率會小很多

㈩ 一個JS加密求助

就是在字元串的後面加上一個時間戳,然後進行MD5編碼。
這其實不算是加密(因為這是不可逆的,你不能根據這個編碼後的字元串逆算出原來的字元串),就是計算字元串的md5散列值,類似於提取指紋。以後在需要的時候,把預想的字元串加上原來的那個時間戳,再次計算md5散列值,把兩個結果進行比對(也就類似於指紋比對),結果相符就說明這個預想的字元串就是原來的那個字元串。

閱讀全文

與js代碼不可逆加密相關的資料

熱點內容
收藏網址加密的瀏覽器 瀏覽:1000
phpurl問號 瀏覽:898
什麼筆記本電腦可以用python 瀏覽:135
加密相冊如何翻找 瀏覽:992
泰州地區DNS伺服器地址 瀏覽:849
一種app可以買菜用英語怎麼說 瀏覽:196
中國聯通app裡面通話詳單怎麼刪除 瀏覽:505
計算機網路編譯軟體 瀏覽:100
程序員說不能說的秘密 瀏覽:700
在線shell編譯器 瀏覽:102
為什麼王者榮耀安卓轉蘋果成功登不上去 瀏覽:710
文件加密演算法可行性報告 瀏覽:60
a3雙面列印pdf 瀏覽:270
被命令文言文 瀏覽:717
c語言編譯器在線菜鳥 瀏覽:215
安卓如何使用華為手機助手 瀏覽:701
怎麼查看域伺服器名稱 瀏覽:775
如何把蘋果的視頻傳到安卓手機 瀏覽:612
介面伺服器怎麼使用 瀏覽:62
蘋果怎麼實現安卓全面屏手勢 瀏覽:977