導航:首頁 > 源碼編譯 > js對稱加密演算法

js對稱加密演算法

發布時間:2023-06-02 09:24:14

㈠ 記錄一下前端使用CryptoJS的幾種加密方式

自己太小白了,之前在PC端項目中使用的MD5加密,現在的小程序項目使用了 CryptoJS 裡面的 enc-base64 和 hmac-sha1 ,之前沒有用到過這兩種,所以比較疑惑,為何在小程序不繼續使用 MD5 呢?所以在這里記錄一下自己解疑惑的一些知識點。

隨著互聯網的興起,我們對信息的安全越來越受重視,這樣就導致在web開發中,對用戶密碼等各種加密變得更加重要了。與伺服器的交互中,為了確保數據傳輸的安全性,避免被黑客抓包篡改。

對於Base64編碼的,我覺得看一篇文章能夠解決你的疑惑,我在這里就不贅述了
🧐 Base64編碼原理

如: 用戶密碼,請求參數,文件加密

如: 介面參數簽名驗證服務

支付數據、CA數字證書

前端的朋友可能會關注前端js加密,我們在做 WEB 的登錄功能時一般是通過 Form 提交或 Ajax 方式提交到伺服器進行驗證的。為了防止抓包,登錄密碼肯定要先進行一次加密(RSA),再提交到伺服器進行驗證。一些大公司都在使用,比如淘寶、京東、新浪 等。

前端加密也有很多現成的js庫,如:

JS-RSA: 用於執行OpenSSL RSA加密、解密和密鑰生成的Javascript庫, https://github.com/travist/jsencrypt

MD5: 單向散列加密md5 js庫, https://github.com/blueimp/JavaScript-MD5

crypto-js: 對稱加密AES js庫, https://github.com/brix/crypto-js

-CryptoJS (crypto.js) 為 JavaScript 提供了各種各樣的加密演算法

HMAC 系列是消息驗證,用於驗證一個消息是否被篡改——如網站上傳遞 email 和 hmac(email),則接收時可以通過 hmac(email) 獲知 email 是否是用戶偽造的

㈡ js有幾種加密方式

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

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

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

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

㈢ js中常見的數據加密與解密的方法

加密在我們前端的開發中也是經常遇見的。本文只把我們常用的加密方法進行總結。不去糾結加密的具體實現方式(密碼學,太龐大了)。

常見的加密演算法基本分為這幾類,

RSA加密:RSA加密演算法是一種非對稱加密演算法。在公開密鑰加密和電子商業中RSA被廣泛使用。(這才是正經的加密演算法)

非對稱加密演算法:非對稱加密演算法需要兩個密鑰:公開密鑰(publickey:簡稱公鑰)和私有密鑰(privatekey:簡稱私鑰)。公鑰與私鑰是一對,如果用公鑰對數據進行加密,只有用對應的私鑰才能解密。因為加密和解密使用的是兩個不同的密鑰,所以這種演算法叫作非對稱加密演算法。

DES全稱為Data Encryption Standard,即數據加密標准,是一種使用密鑰加密的塊演算法

DES演算法的入口參數有三個:Key、Data、Mode。其中Key為7個位元組共56位,是DES演算法的工作密鑰;Data為8個位元組64位,是要被加密或被解密的數據;Mode為DES的工作方式,有兩種:加密或解密。

AES這個標准用來替代原先的DES

DES/AES我們合並在一起介紹其用法和特點

Base64是一種用64個字元來表示任意二進制數據的方法。base64是一種編碼方式而不是加密演算法。只是看上去像是加密而已(嚇唬人)。

㈣ 常用的對稱加密演算法有哪些

對稱加密演算法用來對敏感數據等信息進行加密,常用的演算法包括:

DES(Data Encryption Standard):數據加密標准,速度較快,適用於加密大量數據的場合。

3DES(Triple DES):是基於DES,對一塊數據用三個不同的密鑰進行三次加密,強度更高。

AES(Advanced Encryption Standard):高級加密標准,是下一代的加密演算法標准,速度快,安全級別高。

㈤ 介紹一點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>
就會彈出對話框告訴你解密後的結果!

㈥ 介紹一點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>
就會彈出對話框告訴你解密後的結果!

㈦ 簡要說說對稱加密和非對稱加密的原理以及區別是什麼

對稱加密的原理是數據發送方將明文(原始數據)和加密密鑰一起經過特殊加密演算法處理後,使其變成復雜的加密密文發送出去。接收方收到密文後,若想解讀原文,則需要使用加密密鑰及相同演算法的逆演算法對密文進行解密,才能使其恢復成可讀明文。

非對稱加密的原理是甲方首先生成一對密鑰同時將其中的一把作為公開密鑰;得到公開密鑰的乙方再使用該密鑰對需要加密的信息進行加密後再發送給甲方;甲方再使用另一把對應的私有密鑰對加密後的信息進行解密,這樣就實現了機密數據傳輸。

對稱加密和非對稱加密的區別為:密鑰不同、安全性不同、數字簽名不同。

一、密鑰不同

1、對稱加密:對稱加密加密和解密使用同一個密鑰。

2、非對稱加密:非對稱加密加密和解密所使用的不是同一個密鑰,需要兩個密鑰來進行加密和解密。

二、安全性不同

1、對稱加密:對稱加密如果用於通過網路傳輸加密文件,那麼不管使用任何方法將密鑰告訴對方,都有可能被竊聽。

2、非對稱加密:非對稱加密因為它包含有兩個密鑰,且僅有其中的「公鑰」是可以被公開的,接收方只需要使用自己已持有的私鑰進行解密,這樣就可以很好的避免密鑰在傳輸過程中產生的安全問題。

三、數字簽名不同

1、對稱加密:對稱加密不可以用於數字簽名和數字鑒別。

2、非對稱加密:非對稱加密可以用於數字簽名和數字鑒別。

㈧ 簡述對稱加密演算法的基本原理

對稱加密是計算機加密領域最古老也是最經典的加密標准。雖然對稱加密被認為不再是安全的加密方式,但是直到現在,還看不到它被淘汰的跡象。在很多非網路化的加密環境中,對稱加密足以滿足人們的需要。

對稱加密採用單密鑰加密方式,不論是加密還是解密都是用同一個密鑰,即「一把鑰匙開一把鎖」。對稱加密的好處在於操作簡單、管理方便、速度快。它的缺點在於密鑰在網路傳輸中容易被竊聽,每個密鑰只能應用一次,對密鑰管理造成了困難。對稱加密的實現形式和加密演算法的公開性使它依賴於密鑰的安全性,而不是演算法的安全性。

一個對稱加密系統由五個部分組成,可以表述為

S={M,C,K,E,D}

各字母的含義如下:

M:明文空間,所有明文的集合。

C:密文空間,全體密文的集合。

K:密鑰空間,全體密鑰的集合。

E:加密演算法。

D:解密演算法。

㈨ 對稱加密演算法的基本原理是什麼

對稱加密演算法是應用較早的加密演算法,技術成熟。

在對稱加密演算法中,其原理就是:數據發信方將明文(原始數據)和加密密鑰(mi yao)一起經過特殊加密演算法處理後,使其變成復雜的加密密文發送出去。收信方收到密文後,若想解讀原文,則需要使用加密用過的密鑰及相同演算法的逆演算法對密文進行解密,才能使其恢復成可讀明文。

在對稱加密演算法中,使用的密鑰只有一個,發收信雙方都使用這個密鑰對數據進行加密和解密,這就要求解密方事先必須知道加密密鑰。

閱讀全文

與js對稱加密演算法相關的資料

熱點內容
風月片網站動漫 瀏覽:289
電影拉幫套 瀏覽:745
鴉王電影國語版 瀏覽:600
造機甲的黑科技小說 瀏覽:779
歐美在線觀看網站 瀏覽:385
python整蠱代碼大全 瀏覽:458
電影 中國 飛機 瀏覽:103
畫江湖推倒常宣靈小說 瀏覽:158
java表格居中 瀏覽:404
能來回穿梭現代和民國的小說 瀏覽:830
法國版未刪 瀏覽:755
java中字元串輸入 瀏覽:185
可愛女友糖糖圓圓小詩 瀏覽:272
如何在雲南交投app辦etc 瀏覽:829
尺度大的男同志電影 瀏覽:925
主角為秦霄的穿越小說 瀏覽:707
大尺度床戲多的電影 瀏覽:395
台灣性電影 瀏覽:942
華為手機聊天加密軟體 瀏覽:833