WEB安全——Javascript實現前端AES加密解密功能

編程語言 JavaScript 科技 特立獨行程序猿 2017-03-31

最近由於項目需求做了一次MITM,突然即使發現使用HTTPS,也不能保證數據傳輸過程中的安全性。 通過中間人攻擊,可以直接獲取到Http協議的所有內容。 於是開始嘗試做一些簡單的加密,在一定程度上保證安全性。

本次採用AES加密數據,所以客戶端和服務端使用的相同祕鑰。(僅作為演示,正式環境推薦使用RSA)

首先準備一份明文密碼和加密使用的KEY

var source = "ABCDEFG";

var aesKey = "8NONwyJtHesysWpM";

JS加密 padding和mode 需要與服務端相對應,否則無法解密

//key 為字符串類型,需要處理完再使用
//注:PKCS5Padding 和 PKCS7Padding 是一樣的

上段所示的 encryptedData 即為加密後的結果。

JS解密代碼

//encryptedData 為加密後的數據, 
//直接通過JS加密後的數據是一個對象,無法直接解密的, 需要轉換為Base64的字符串後才可解密
//服務端應當返回Base64之後的加密數據
encryptedData = encryptedData.ciphertext.toString();
var encryptedHexStr = CryptoJS.enc.Hex.parse(encryptedData);

WEB安全——Javascript實現前端AES加密解密功能

結果演示

Tip: aes.js N合一

http://react.file.alimmdn.com/aes.js

Demo 控制檯查看

http://react.file.alimmdn.com/aes.html?t=1490179790965

相關推薦

推薦中...