當前位置:首頁 » 密碼管理 » js傳輸加密

js傳輸加密

發布時間: 2022-06-15 01:36:43

1. 用JS方法加密URL

首先,很不推薦你使用get方式發送密碼,最好是使用post.
原因是,你通過一個連接把用戶名和密碼發送到後台,即便密碼不是明文,別人獲取不到密碼明文,但是,只要你這個連接成功登陸過,別人就可以拿這個連接到處登陸.密碼明文加密完全形同虛設.

如果非想使用get方式發送,我可以給你個思路,就是表單附帶發送令牌,這個令牌是表單內的隱藏域,後台里對每一個時刻都不同的字元串做單向加密然後保存SESSION會話,一般使用md5方式,然後表單頁面隱藏域寫出該SESSION的值.發送表單的時候,附帶令牌一起發送,(在url形式中就是多了一個參數),後台驗證令牌是否是保存過的SESSION值,如果是,執行登陸,如果不是,就報錯.

不管令牌是不是正確的,你都需要在每次生成頁面時重新更新一次令牌並輸出,這樣才能保證唯一性.
然後你可以使用js版的md5把密碼處理成加密字元串.
這樣可以躲過部分不熟悉html的,但是如果他懂html,只需查看html的令牌,然後自己去組成url,那麼照樣還是不行.
所以,這種形式仍是不可取的,正宗的方式就是post發送用戶名和密碼,或是ajax的get方式發送.

2. 介紹一點js加密的方法

一:最簡單的加密解密
大家對於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>
就會彈出對話框告訴你解密後的結果!

3. 求助前端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, 你好師姐」。

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

結語

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

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

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

4. 怎麼用js來加密url的傳遞參數

加密代碼
function eb(ting)
{
//傳入要加密的url
//獲取url參數部分
var paraString = ting.substring(ting.indexOf("?")+1,ting.length);
//將加密後的參數重新組合到url中
var rul=ting.substring(0,ting.indexOf("?")+1)+escape(paraString);
//跳轉到rul頁面呢
location.href=rul;
}
解密代碼
var urlPara = location.search; //獲取參數部分
urlPara=unescape(urlPara);//對參數解密
//分析參數
function getPara(paraName){
var reg = new RegExp("[&|?]"+paraName+"=([^&$]*)", "gi");
var a = reg.test(urlPara);
return a ? RegExp.$1 : "";
}
//捕獲參數並進行操作
//window.onload = function(){
//var url= getPara("id"); //捕獲到url參數
//document.getElementById("TextBox1").value = url;
//}

5. js在數據傳輸中的加密解密怎麼實現的

你的描述是不準確的:數據安全並不僅僅是保證數據的完整性,數據傳輸的安全包括:真實性、保密性、完整性以及不可抵賴等等方面。
如果你僅僅要實現數據的完整性也就是不可篡改,其實很簡單,自己寫一個hash演算法,對傳輸的數據進行數字簽名,後台用相同的演算法對內容進行hash,再和數據的數字簽名進行對比即可,如果不一樣,則說明是篡改過的,一樣則是完整的。
如果你要達到更高的的數據安全,則必須使用https協議(你這里的前台、後台我暫時理解為使用http協議傳輸),具體的過程你可搜索https相關內容。

6. js點擊登錄按鈕獲取到賬號密碼文本框內容並加密傳輸

文本框和密碼框都是input元素,只是type屬性值不一樣,因此只要將type屬性由text修改為password即可實現文本框變密碼框。示例如下:

1、HTML結構


<inputtype="text"id="test"value="請輸入密碼"onclick="fun(this)">

2、javascript代碼


functionfun(obj){obj.value="";obj.type="password";}

3、效果演示

7. js用什麼方法對ajax的post的數據進行加密傳輸php進行解密

利用可逆函數加隨機鹽進行加密和解密~
客戶端利用密鑰加密提交,服務端利用密鑰解密,密鑰一次性,使用後作廢

8. 使用Nodejs如何實現數據加密傳輸

https(SSL)協議

9. js有幾種加密方式

首先,MD5不是加密演算法,是簽名演算法,哎,到底是有多少國人被毒害了呀。

另外,只要是可以由軟體實現的加密演算法,js都能使用,只是有效率問題,
一般的
非對稱演算法,使用的資源都很龐大,所以js很少有。
而對稱的加密演算法……,由於js是對用戶可見的,所以……就和沒加密一樣。

這也就是為什麼真正的高安全網站都不會選擇用js做加密,而是選擇用https 協議這樣的手段。

再次重申,MD5不是加密演算法,所以不再上述范圍內

10. 如何加密js

一:最簡單的加密解密
二:轉義字元"\"的妙用
三:使用Microsoft出品的腳本編碼器Script. Encoder來進行編碼 (自創簡單解碼)
四:任意添加NUL空字元(十六進制00H) (自創)
五:無用內容混亂以及換行空格TAB大法
六:自寫解密函數法
七:錯誤的利用 (自創)
在做網頁時(其實是網頁木馬呵呵),最讓人煩惱的是自己辛辛苦苦寫出來的客戶端IE運行的JAVASCRIPT代碼常常被別人輕易的拷貝,實在讓自己的心裡有點不是滋味,要知道自己寫點東西也挺累的......^*^
我們清楚地認識到因為JAVASCRIPT代碼是在IE中解釋執行,要想絕對的保密是不可能的,我們要做的就是盡可能的增大拷貝者復制的難度,讓他知難而退(但願~!~),下面我結合自己這幾年來的實踐,及個人研究的心得,和大家一起來探討一下網頁中JAVASCRIPT代碼的加密解密技術。

熱點內容
汽車官方配置表如何下載 發布:2025-05-14 06:21:41 瀏覽:798
停車項目源碼 發布:2025-05-14 06:20:05 瀏覽:354
htc忘記密碼怎麼解鎖 發布:2025-05-14 06:04:42 瀏覽:100
3d畫廊android 發布:2025-05-14 06:03:54 瀏覽:969
為什麼文件夾有鎖 發布:2025-05-14 05:53:21 瀏覽:945
安卓手機哪個處理器是最好的 發布:2025-05-14 05:40:23 瀏覽:530
java語言實現 發布:2025-05-14 05:34:43 瀏覽:234
數控系統主軸配置參數有哪些 發布:2025-05-14 05:25:55 瀏覽:819
二級緩存微服務 發布:2025-05-14 05:13:55 瀏覽:101
sqlserverwhencase 發布:2025-05-14 05:11:35 瀏覽:434