js日常分享

來源:互聯網
上載者:User

標籤:esc   tin   實現   jpg   字串   引號   解密   coder   十六進位   

1,網頁後退
<a href="??????">後退</a>
so easy 的問題在百度就是沒找到,我學asp.net的,或者用linkbutton實現也可以,就是做後退功能
asp.net 標籤 a
分享到:

------解決方案--------------------
<a href="javascritp:history.go(-1)">後退</a>
------解決方案--------------------
。。。 用JS吧,<a href="javascript:history.go(-1);">後退</a>
------解決方案--------------------
<a href="javascript:history.go(-1)">後退</a> 打錯了

2.瀑布流實現代碼
HTML
<div id="all"> <div class="box"> <div class="pic"> <img src="cars/1.jpg"/> </div> </div> <div class="box"> <div class="pic"> <img src="cars/2.jpg"/> </div> </div> <div class="box"> <div class="pic"> <img src="cars/3.jpg"/> </div> </div> <div class="box"> <div class="pic"> <img src="cars/4.jpg"/> </div> </div> <div class="box"> <div class="pic"> <img src="cars/5.jpg"/> </div> </div> <div class="box"> <div class="pic"> <img src="cars/6.jpg"/> </div> </div> <div class="box"> <div class="pic"> <img src="cars/7.jpg"/> </div> </div> <div class="box"> <div class="pic"> <img src="cars/8.jpg"/> </div> </div> <div class="box"> <div class="pic"> <img src="cars/9.jpg"/> </div> </div> <div class="box"> <div class="pic"> <img src="cars/10.jpg"/> </div> </div> <div class="box"> <div class="pic"> <img src="cars/11.jpg"/> </div> </div> <div class="box"> <div class="pic"> <img src="cars/12.jpg"/> </div> </div> </div>
這裡用一個大盒子來裝全部內容,小盒子box裝塊內容,pic盒子裝圖片。看css的代碼

CSS
*{ margin: 0; padding: 0; } #all{ /*關鍵代碼*/ -webkit-column-width: 437px; -moz-column-width: 437px; -o-column-width: 437px; -ms-column-width: 437px; /*-webkit-column-count: 3; -moz-column-count: 3; -o-column-count: 3; -ms-column-count: 3;*/ /*-webkit-column-rule: 2px dashed #F00; -moz-column-rule: 2px dashed #F00; -o-column-rule: 2px dashed #F00; -ms-column-rule: 2px dashed #F00;*/ /*-webkit-column-gap: 5px; -moz-column-gap: 5px; -o-column-gap: 5px; -ms-column-gap: 5px;*/ } .box{ padding: 15px 0 0 15px; } .pic{ padding: 10px; border: 1px solid #ccc; border-radius: 5px; box-shadow: 0 0 5px #ccc ; width: 400px; } .pic>img{ width: 400px; height: auto; }
3,上下左右的ASCII碼值
上鍵:0 72
下鍵:0 80
左鍵:0 75
右鍵:0 77
4,加密技術
由於js是在用戶端解釋型的語言,所以很容易就可以通過瀏覽器查看到js寫的原始碼。這樣,就有了加密js的需求。(其實這裡的加密只是一種說法,從下面我們可以看出來其實沒有起到加密的作用,只是把原始碼做了一定的處理達到了無法直接閱讀的目的)此外,對js的壓縮也是提升效能的一種手段。

以加密下面的JAVASCRIPT代碼為例:

CommonJs.js 檔案

....

function test() {

alert("《駭客防線》");

}

目的:把上面的js檔案進行加密,同時還要保證調用者不用修改代碼,即:通過test()仍然可以使用改方法;


原理:大家可以想到eval函數,這個函數的作用就是檢查JavaScript代碼並執行。有了這個方法,這樣就使用一個edCode()和deCode()類似的函數對其可以對CommonJs.js中的代碼進行。過程是這樣的,使用enCode函數對CommonJs.js中的檔案加密,產生一個密文Str,然後在使用decode解密,最後在使用eval執行,這樣就可以保證代碼被加密但仍然可以被正常調用的需求。例如:CommonJs.js中的內容就可以是一下內容:解密函數decode()和eval(decode(Str))

缺點:很明顯,雖然在最終的CommonJs.js中看到的是加密後的內容(Str),但是解密函數也是公開的,就等於是沒有達到加密的效果。


下面是網上一些常用的加密方式如下:

以加密下面的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("/141/154/145/162/164/50/42/u9ED1/u5BA2/u9632/u7EBF/42/51/73")
</script>
十六進位逸出字元串如下:
<script LANGUAGE="JavaScript">
eval("/x61/x6C/x65/x72/x74/x28/x22/u9ED1/u5BA2/u9632/u7EBF/x22/x29/x3B")
</script>
這次沒有瞭解碼函數,因為JavaScript執行時會自行轉換,同樣解碼也是很簡單如下:
<script LANGUAGE="JavaScript">
alert("/x61/x6C/x65/x72/x74/x28/x22/u9ED1/u5BA2/u9632/u7EBF/x22/x29/x3B")
</script>


三:使用Microsoft出品的指令碼編碼器Script Encoder來進行編碼
工具的使用就不多介紹啦!我是直接使用JavaScript調用控制項Scripting.Encoder完成的編碼!代碼如下:
<script LANGUAGE="JavaScript">
var Senc=new ActiveXObject("Scripting.Encoder");
var code=‘<script LANGUAGE="JavaScript">/r/nalert("《駭客防線》");/r/n‘;
var Encode=Senc.EncodeScriptFile(".htm",code,0,"");
alert(Encode);
</script>

js日常分享

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.