91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

JavaScript怎么實現的前端AES加密解密功能

發布時間:2021-04-12 12:22:45 來源:億速云 閱讀:2410 作者:小新 欄目:web開發

這篇文章將為大家詳細講解有關JavaScript怎么實現的前端AES加密解密功能,小編覺得挺實用的,因此分享給大家做個參考,希望大家閱讀完這篇文章后可以有所收獲。

js前端AES加密

最近由于項目需求做了一次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);

先來看看運行結果:

 JavaScript怎么實現的前端AES加密解密功能

aes.js文件可點擊此處本站下載

完整測試代碼如下:

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>www.jb51.net aes.js</title>
</head>
<script src="aes.js"></script>
<body>
<script>
  var key = CryptoJS.enc.Utf8.parse("8NONwyJtHesysWpM");
  var plaintText = 'ABCDEFGH'; // 明文
  var encryptedData = CryptoJS.AES.encrypt(plaintText, key, {
    mode: CryptoJS.mode.ECB,
    padding: CryptoJS.pad.Pkcs7
  });
  console.log("加密前:"+plaintText);
  console.log("加密后:"+encryptedData);
  encryptedData = encryptedData.ciphertext.toString();
  var encryptedHexStr = CryptoJS.enc.Hex.parse(encryptedData);
  var encryptedBase64Str = CryptoJS.enc.Base64.stringify(encryptedHexStr);
  var decryptedData = CryptoJS.AES.decrypt(encryptedBase64Str, key, {
    mode: CryptoJS.mode.ECB,
    padding: CryptoJS.pad.Pkcs7
  });
  var decryptedStr = decryptedData.toString(CryptoJS.enc.Utf8);
  console.log("解密后:"+decryptedStr);
   var pwd = "PCsUFtgog9/qpqmqXsuCRQ==";
  //加密服務端返回的數據
  var decryptedData = CryptoJS.AES.decrypt(pwd, key, {
    mode: CryptoJS.mode.ECB,
    padding: CryptoJS.pad.Pkcs7
  });
  console.log("解密服務端返回的數據:"+decryptedStr);
</script>
</body>
</html>

關于“JavaScript怎么實現的前端AES加密解密功能”這篇文章就分享到這里了,希望以上內容可以對大家有一定的幫助,使各位可以學到更多知識,如果覺得文章不錯,請把它分享出去讓更多的人看到。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

丰都县| 崇文区| 田林县| 茌平县| 保靖县| 罗甸县| 台东县| 荣昌县| 巢湖市| 木里| 白山市| 哈巴河县| 正蓝旗| 玉环县| 韩城市| 沛县| 鹤庆县| 阿克苏市| 涿州市| 高青县| 大邑县| 安宁市| 思茅市| 九龙县| 东方市| 永靖县| 海淀区| 白银市| 利川市| 繁峙县| 岳普湖县| 宁远县| 崇明县| 景泰县| 简阳市| 大田县| 兴海县| 保靖县| 北辰区| 龙泉市| 临武县|