Ⅰ 如何將js加密
簡單的說: javascript是一種客戶端語言,即是在用戶的瀏覽器中被執行的,由於許可權不被伺服器控制,所以不可能加密.
多說一點: 雖然js不能加密,但是如果你不太想被別人太容易拿去使用,你可以使用一些工具對javascript的代碼進行壓縮和代碼混淆. 這種工具你搜一下就是一大堆的.
Ⅱ js有幾種加密方式
首先,MD5不是加密演算法,是簽名演算法,哎,到底是有多少國人被毒害了呀。
另外,只要是可以由軟體實現的加密演算法,js都能使用,只是有效率問題,
一般的
非對稱演算法,使用的資源都很龐大,所以js很少有。
而對稱的加密演算法……,由於js是對用戶可見的,所以……就和沒加密一樣。
這也就是為什麼真正的高安全網站都不會選擇用js做加密,而是選擇用https 協議這樣的手段。
再次重申,MD5不是加密演算法,所以不再上述范圍內
Ⅲ js有哪些加密的方式
JS七種加密解密方法
這篇文章可能對你有所幫助
網頁鏈接
Ⅳ 如何對JS代碼加密
JS加密其實就是對字元進行編碼,也不是一定要用工具有兩個函數的document.write(escape("你好,這是測試!")+"<br>");
document.write(unescape("%u4F60%u597D%uFF0C%u8FD9%u662F%u6D4B%u8BD5%uFF01"));
Ⅳ 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>
就會彈出對話框告訴你解密後的結果!
Ⅵ 請高人指點一段javascript加密演算法的思想...急!!!!
這個加碼程序是利用隨機碼進行加密的,從我初步的判斷就是利用了一個隨機數而已,然後將這個隨機數又用8位16進行在密文的最後累上的。所以很容易找到這個隨機的干擾碼的,對於加密的過程,寫的還不錯,但加密的粒度太低,也就是只是對密匙位數進行加密,不過想逆它一般還是很難的,但好在粒度低,就算是用暴破的方法也是很快可以解密的。前提是密匙的不安全性。反算可以通過255次+8421505次就可計算出你的密碼。還是由於粒度低,密文碰撞性比較大。好像沒有很好的處理。str就是這時原密匙,而pwd則是密碼,待加密字元。而生成出來的就是明文可以在網上任何傳播的。
這個程序基本上實現了加密的幾個要素。思想不錯,便由於粒度低,再加上本身JS的不安全性,所以還是比較脆弱的。至於說演算法,在密碼學上加密的演算法本身就是公開的。一樓的,JS暴出來又如何?
這個加密方法也有它自身的好處,SHA1和MD5都是固定位數的加密,而這個是一個動態的長度不固定的加密,如果你願意,把你的密匙設為8位,則加密的內容是16+8位,當然,如果是設20位時加密的過程則出現48位的。而不是像MD5的16位和32位那麼固定。
不過提到了DES和TDES,你不妨借用它們的思想,將加密過的內容,再以同樣的方式,再樣的密匙再加密一次或二次,破解難度無疑提高了。
一般加密中很少使用^運算的。可以考慮使用|或者是&運算。因為^運算有一個特點就是:A^C=B時,則B^C=A,同時A^C=B,所以降低的破解難度!
sorry,由於上次看這個東西時間短,所以說錯了點,不過這個加密還是很不錯的。str是待加密的密文,而函數的返回值是加密過的明文,PWD才是密匙,由於對這個演算法很感興趣,便下從回家時看了看,原來這個是一個對稱加密的方式。寫的很好,如果密匙不是泄露的原因,還是要過255次+8421505次的試驗才可得到正確的結果,所以說,加密的粒度低。便由於是動態的,且由於程序短小適合對於大量的文本加密,那麼破解就變得不那麼容易了。首先一次我還是說,加密演算法與解密演算法是公開的,因為生成明文的過程不依賴於演算法。而是依賴於密匙的。只在密匙不泄露就可以了。像這類的演算法本身都是公開的也用不著去暴JS代碼的。所以根據其加密演算法,我已經寫出了解密的過程。也就是說你可以將一篇文本加密後發給我,然後只要告訴我密匙,我就能知道具體的內容了。在加密學中,密匙的才是解密的,所以, 如果演算法中可以有逆過程時是錯誤的加密方式,這樣的加密過於依賴演算法。而想逆一下要多長時間才是衡量一個加密的強度的。比如這個過程要100年(要計算機運算的時間)才能逆,那麼相對目前來說是相當安全的。而這個加密卻是能對大量文件進行加密的。所以速度上還是很好的,這里我們不能以非對稱加密方式去衡量它的安全性。
Ⅶ 如何正確的進行JS加密分析
首先,MD5不是加密演算法,是簽名演算法,哎,到底是有多少國人被毒害了呀。 另外,只要是可以由軟體實現的加密演算法,js都能使用,只是有效率問題, 一般的 非對稱演算法,使用的資源都很龐大,所以js很少有。 而對稱的加密演算法……,由於js是對用戶可見
Ⅷ 【懸賞100】求一個不限制密文長度和密鑰長度的對稱加密演算法
DES使用56位密鑰對64位的數據塊進行加密,並對64位的數據塊進行16輪編碼。與每輪編碼時,一個48位的「每輪」密鑰值由56位的完整密鑰得出來。DES用軟體進行解碼需要用很長時間,而用硬體解碼速度非常快,但幸運的是當時大多數黑客並沒有足夠的設備製造出這種硬體設備。在1977年,人們估計要耗資兩千萬美元才能建成一個專門計算機用於DES的解密,而且需要12個小時的破解才能得到結果。所以,當時DES被認為是一種十分強壯的加密方法。
但是,當今的計算機速度越來越快了,製造一台這樣特殊的機器的花費已經降到了十萬美元左右,所以用它來保護十億美元的銀行間線纜時,就會仔細考慮了。另一個方面,如果只用它來保護一台伺服器,那麼DES確實是一種好的辦法,因為黑客絕不會僅僅為入侵一個伺服器而花那麼多的錢破解DES密文。由於現在已經能用二十萬美圓製造一台破譯DES的特殊的計算機,所以現在再對要求「強壯」加密的場合已經不再適用了。
三重DES
因為確定一種新的加密法是否真的安全是極為困難的,而且DES的唯一密碼學缺點,就是密鑰長度相對比較短,所以人們並沒有放棄使用DES,而是想出了一個解決其長度問題的方法,即採用三重DES。這種方法用兩個密鑰對明文進行三次加密,假設兩個密鑰是K1和K2,其演算法的步驟如圖5.9所示:
1. 用密鑰K1進行DEA加密。
2. 用K2對步驟1的結果進行DES解密。
3. 用步驟2的結果使用密鑰K1進行DES加密。
這種方法的缺點,是要花費原來三倍時間,從另一方面來看,三重DES的112位密鑰長度是很「強壯」的加密方式了
Ⅸ 求助前端JS都是用什麼加密的
寫過js混淆器,談一些淺顯的個人看法。個人認為,js的不可讀化處理分為三個方面:壓縮(compression)、混淆(obfuscation)和加密(encryption)。(不可讀化處理,這是我自己發明的術語,一切會增加代碼不可讀性的代碼轉換,都可以這么叫,「增加代碼不可讀性」可能是代碼轉換的結果或者目的).1.壓縮這一操作的目的,是讓最終代碼傳輸量(不代表代碼量,也不代表文件體積)盡可能小。壓縮js的工具,常見的有:YUICompressor、UglifyJS、GoogleClosureCompiler等。通常在代碼壓縮的過程中,只改變代碼的語法,代碼的語義和控制流不會有太大改變。常見做法是把局部變數縮短化,把一些運算進行等價替換等。代碼壓縮對於代碼保護有一些幫助,但由於語義和控制流基本沒變,起不了太大作用。在壓縮層面上,代碼不可讀只是一種附帶傷害,不是最終目的。2.混淆這一操作的目的,是讓代碼盡可能地不可讀,主要用作代碼保護。讓代碼不可讀,增加分析的難度,這是唯一目的。混淆過後文件體積變大一倍也沒關系,代碼量變多也沒關系,運算慢50%也沒關系。常見的做法有:分離常量、打亂控制流、增加無義代碼、檢查運行環境如果不對就罷工,等等。在混淆層面上,代碼不可讀是最終目的。值得一提的是,GoogleClosureCompiler的AdvanceLevelCompression會壓縮類和對象的成員,其壓縮結果很難分析,也可以認為是一種混淆,但兼容性不太好。廣告時間:我寫的js混淆器,中文名叫「看起來很厲害的JS編譯器」,英文名叫做TheImpressiveJS.Segment.Compiler,看起來很厲害的JS編譯器。3.加密說實話我很難對加密做一個定義,因為加密在Web界有太多歧義了。有加密就有解密,意味著加密操作可逆,密文可以明文化。就這樣看來,在Web界,可以稱之為加密的東西包括:HTTPS傳輸、JavaScript實現對稱加密或者不對稱加密等等。這樣看來,不可逆的代碼壓縮和混淆就不能列入加密這個范疇了。非要找一個可以稱之為加密,又經常被人誤解為壓縮和混淆的東西,DeanEdwards的DeanPacker/Unpacker可以拿來做個例子。比如我們把varnum=1;alert(num);輸入DeanPacker,pack一下,得到這么一串東西,是不是看著非常像被壓縮和混淆過的代碼?把上面那串意義不明物拿來unpack一下,得到了原文。實際上DeanPacker只是對源碼進行了一個字元串變換,沒有深入到代碼語法層面,你可以拿"Helloworld,你好師姐"來試試。用OnlineJavaScriptbeautifier能輕松把這串東西還原為「Helloworld,你好師姐」。可以看出,代碼加密意味著:將代碼明文進行可逆的變換(加密),生成密文;將密文進行逆變換(解密),可以還原明文;最終運行環境運行的是解密代碼。結語實際上大家對壓縮、混淆、加密這三個概念還是挺不清晰的,我在這里說一些個人見解,希望有幫助。在現實項目中,我是多種手段結合的:對於不需要做代碼保護的項目,比如個人博客,做代碼壓縮,加快載入速度,這就夠了。對於需要做一些代碼保護,防止抄襲的項目,可以在源碼中加入一些開發者的信息和防護代碼,然後混淆和壓縮。很不幸的是,我這方面總是做得不太好,防君子防不了小人啊哈哈。對於需要嚴格加密的項目,可以用混淆、壓縮、加密、簽名檢查等多種手段,這我就不清楚了,等大嬸來補充。
Ⅹ 關於JS加密,這個是什麼加密方式如何進行加密和解密
7種加密方式:http://www.codesky.net/article/200911/165731.html