CryptoJS (crypto.js) 為 JavaScript 提供了各種各樣的加密算法。
des對稱加密
在對稱加密算法中,數(shù)據(jù)發(fā)信方將明文和加密密鑰一起經(jīng)過特殊加密算法處理后,使其變成復(fù)雜的加密密文發(fā)送出去。收信方收到密文后,若想解讀原文,則需要使用加密用過的密鑰及相同算法的逆算法對密文進(jìn)行解密,才能使其恢復(fù)成可讀明文。
<script src="core.js" ></script> <script src="enc-base64.js" ></script> <script src="cipher-core.js" ></script> <script src="tripledes.js" ></script> <script src="mode-ecb.js" ></script> <script> //加密 function encryptByDES(message, key) { var keyHex = CryptoJS.enc.Utf8.parse(key); var encrypted = CryptoJS.DES.encrypt(message, keyHex, { mode: CryptoJS.mode.ECB, padding: CryptoJS.pad.Pkcs7 }); return encrypted.toString(); } //解密 function decryptByDES(ciphertext, key) { var keyHex = CryptoJS.enc.Utf8.parse(key); var decrypted = CryptoJS.DES.decrypt({ ciphertext: CryptoJS.enc.Base64.parse(ciphertext) }, keyHex, { mode: CryptoJS.mode.ECB, padding: CryptoJS.pad.Pkcs7 }); return decrypted.toString(CryptoJS.enc.Utf8); } </script>
抓包
抓包就是將網(wǎng)絡(luò)傳輸發(fā)送與接收的數(shù)據(jù)包進(jìn)行截獲、重發(fā)、編輯、轉(zhuǎn)存等操作,也用來檢查網(wǎng)絡(luò)安全。抓包也經(jīng)常被用來進(jìn)行數(shù)據(jù)截取等。使用抓包工具,可以監(jiān)視網(wǎng)絡(luò)的狀態(tài)、數(shù)據(jù)流動情況以及網(wǎng)絡(luò)上傳輸?shù)男畔?。?dāng)信息以明文的形式在網(wǎng)絡(luò)上傳輸時,便可以使用網(wǎng)絡(luò)監(jiān)聽的方式來進(jìn)行攻擊。將網(wǎng)絡(luò)接口設(shè)置在監(jiān)聽模式,便可以將網(wǎng)上傳輸?shù)脑丛床粩嗟男畔⒔孬@。黑客們常常用它來截獲用戶的口令。
https
超文本傳輸協(xié)議HTTP協(xié)議被用于在Web瀏覽器和網(wǎng)站服務(wù)器之間傳遞信息。HTTP協(xié)議以明文方式發(fā)送內(nèi)容,不提供任何方式的數(shù)據(jù)加密,如果攻擊者截取了Web瀏覽器和網(wǎng)站服務(wù)器之間的傳輸報文,就可以直接讀懂其中的信息,因此HTTP協(xié)議不適合傳輸一些敏感信息,比如信用卡號、密碼等。
為了解決HTTP協(xié)議的這一缺陷,需要使用另一種協(xié)議:安全套接字層超文本傳輸協(xié)議HTTPS。為了數(shù)據(jù)傳輸?shù)陌踩?,HTTPS在HTTP的基礎(chǔ)上加入了SSL協(xié)議,SSL依靠證書來驗(yàn)證服務(wù)器的身份,并為瀏覽器和服務(wù)器之間的通信加密。
在 HTTP 協(xié)議下,數(shù)據(jù)是明文傳輸,傳輸過程中網(wǎng)絡(luò)嗅探可直接獲取其中的數(shù)據(jù)。 如用戶的密碼和信用卡相關(guān)的資料,一旦被中間人獲取,會給用戶帶來極大的安全隱患。另一方面在非加密的傳輸過程中,攻擊者可更改數(shù)據(jù)或執(zhí)行惡意的代碼等。HTTPS 的誕生就是為了解決中間人攻擊的問題。
加密速度減慢一定程度會降低用戶體驗(yàn),這也是一部分站點(diǎn)未啟用 https 的原因之一。但是因?yàn)槲覀兊那岸思用苤粫迷诓怀J褂玫牡卿浐妥陨?,所以不會影響網(wǎng)站整體的體驗(yàn)。
對稱加密和非對稱加密
對稱加密算法在加密和解密時使用的是同一個秘鑰;而非對稱加密算法需要兩個密鑰來進(jìn)行加密和解密,這兩個秘鑰是公開密鑰和私有密鑰。公開密鑰與私有密鑰是一對,如果用公開密鑰對數(shù)據(jù)進(jìn)行加密,只有用對應(yīng)的私有密鑰才能解密;如果用私有密鑰對數(shù)據(jù)進(jìn)行加密,那么只有用對應(yīng)的公開密鑰才能解密。
(1)優(yōu)缺點(diǎn)
非對稱加密與對稱加密相比,其安全性更好:對稱加密的通信雙方使用相同的秘鑰,如果一方的秘鑰遭泄露,那么整個通信就會被破解;對稱加密的優(yōu)點(diǎn)是加/解密速度快,適合于對大數(shù)據(jù)量進(jìn)行加密,非對稱加密的缺點(diǎn)是加密和解密花費(fèi)時間長、速度慢,只適合對少量數(shù)據(jù)進(jìn)行加密。
在實(shí)際的應(yīng)用中,人們通常將非對稱加密與對稱加密兩者結(jié)合在一起使用,例如,對稱密鑰加密系統(tǒng)用于存儲大量數(shù)據(jù)信息,而公開密鑰加密系統(tǒng)則用于加密密鑰。
(2)非對稱加密工作過程
1、乙方生成一對密鑰(公鑰和私鑰)并將公鑰向其它方公開。
2、得到該公鑰的甲方使用該密鑰對機(jī)密信息進(jìn)行加密后再發(fā)送給乙方。
3、乙方再用自己保存的另一把專用密鑰(私鑰)對加密后的信息進(jìn)行解密。乙方只能用其專用密鑰(私鑰)解密由對應(yīng)的公鑰加密后的信息。
在傳輸過程中,即使攻擊者截獲了傳輸?shù)拿芪?,并得到了乙的公鑰,也無法破解密文,因?yàn)橹挥幸业乃借€才能解密密文。文章來源:http://www.zghlxwxcb.cn/news/detail-645043.html
同樣,如果乙要回復(fù)加密信息給甲,那么需要甲先公布甲的公鑰給乙用于加密,甲自己保存甲的私鑰用于解密。文章來源地址http://www.zghlxwxcb.cn/news/detail-645043.html
到了這里,關(guān)于CryptoJS加密—網(wǎng)絡(luò)安全的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!