CryptoJS加密(網絡安全)

CryptoJS (crypto.js) 爲 JavaScript 提供了各類各樣的加密算法。前端

des對稱加密算法

在對稱加密算法中,數據發信方將明文和加密密鑰一塊兒通過特殊加密算法處理後,使其變成複雜的加密密文發送出去。收信方收到密文後,若想解讀原文,則須要使用加密用過的密鑰及相同算法的逆算法對密文進行解密,才能使其恢復成可讀明文。瀏覽器

<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>

抓包安全

  抓包就是將網絡傳輸發送與接收的數據包進行截獲、重發、編輯、轉存等操做,也用來檢查網絡安全。抓包也常常被用來進行數據截取等。使用抓包工具,能夠監視網絡的狀態、數據流動狀況以及網絡上傳輸的信息。當信息以明文的形式在網絡上傳輸時,即可以使用網絡監聽的方式來進行攻擊。將網絡接口設置在監聽模式,即可以將網上傳輸的源源不斷的信息截獲。黑客們經常用它來截獲用戶的口令。服務器

https網絡

  超文本傳輸協議HTTP協議被用於在Web瀏覽器和網站服務器之間傳遞信息。HTTP協議以明文方式發送內容,不提供任何方式的數據加密,若是攻擊者截取了Web瀏覽器和網站服務器之間的傳輸報文,就能夠直接讀懂其中的信息,所以HTTP協議不適合傳輸一些敏感信息,好比信用卡號、密碼等
  爲了解決HTTP協議的這一缺陷,須要使用另外一種協議:安全套接字層超文本傳輸協議HTTPS。爲了數據傳輸的安全,HTTPS在HTTP的基礎上加入了SSL協議,SSL依靠證書來驗證服務器的身份,併爲瀏覽器和服務器之間的通訊加密
  在 HTTP 協議下,數據是明文傳輸,傳輸過程當中網絡嗅探可直接獲取其中的數據。 如用戶的密碼和信用卡相關的資料,一旦被中間人獲取,會給用戶帶來極大的安全隱患。另外一方面在非加密的傳輸過程當中,攻擊者可更改數據或執行惡意的代碼等。HTTPS 的誕生就是爲了解決中間人攻擊的問題。
  加密速度減慢必定程度會下降用戶體驗,這也是一部分站點未啓用 https 的緣由之一。可是由於咱們的前端加密只會用在不常使用的登陸和註冊上,因此不會影響網站總體的體驗。
 
對稱加密和非對稱加密
  對稱加密算法在加密和解密時使用的是同一個祕鑰;而非對稱加密算法須要兩個密鑰來進行加密和解密,這兩個祕鑰是公開密鑰和私有密鑰。公開密鑰與私有密鑰是一對,若是用公開密鑰對數據進行加密,只有用對應的私有密鑰才能解密;若是用私有密鑰對數據進行加密,那麼只有用對應的公開密鑰才能解密。
(1)優缺點
非對稱加密與對稱加密相比,其安全性更好:對稱加密的通訊雙方使用相同的祕鑰,若是一方的祕鑰遭泄露,那麼整個通訊就會被破解;對稱加密的優勢是加/解密速度快,適合於對大數據量進行加密,非對稱加密的缺點是加密和解密花費時間長、速度慢,只適合對少許數據進行加密。
在實際的應用中,人們一般將非對稱加密與對稱加密二者結合在一塊兒使用,例如,對稱密鑰加密系統用於存儲大量數據信息,而公開密鑰加密系統則用於加密密鑰。
(2)非對稱加密工做過程
一、乙方生成一對密鑰(公鑰和私鑰)並將公鑰向其它方公開。
二、獲得該公鑰的甲方使用該密鑰對機密信息進行加密後再發送給乙方。
三、乙方再用本身保存的另外一把專用密鑰(私鑰)對加密後的信息進行解密。乙方只能用其專用密鑰(私鑰)解密由對應的公鑰加密後的信息。
在傳輸過程當中,即便攻擊者截獲了傳輸的密文,並獲得了乙的公鑰,也沒法破解密文,由於只有乙的私鑰才能解密密文。
一樣,若是乙要回復加密信息給甲,那麼須要甲先公佈甲的公鑰給乙用於加密,甲本身保存甲的私鑰用於解密。
相關文章
相關標籤/搜索