知識點:
1、安全開發-原生JS-數據加密&代碼混淆
2、安全開發-原生JS-數據解密安全案例
一、演示案例-WEB開發-原生JS&第三方庫-數據加密
前端技術JS實現:
1、非加密數據大致流程:
客戶端發送->明文數據傳輸-服務端接受數據->處理數據2、加密數據大致流程:
客戶端發送->明文加密->密文數據傳輸-服務端接受數據->解密數據->處理數據
前端加密-Crypto庫
項目地址:https://github.com/brix/crypto-js
參考文章:https://juejin.cn/post/7382893339181613068
使用Crypto
庫進行MD5/SHA1/HMAC/AES/DES
等加密
下載到本地調用:
<script src="crypto-js.js"></script>在線遠程調用:
<script src="https://cdnjs.cloudflare.com/ajax/libs/crypto-js/4.0.0/crypto-js.min.js"></script>
base64編碼-JS原生
MD5
SHA1
HMAC
AES
http://tool.chacuo.net/cryptaes
DES
http://tool.chacuo.net/cryptaes
前端加密-jsencrypt庫
項目地址:https://github.com/travist/jsencrypt
參考文章:https://www.cnblogs.com/Lrn14616/p/10154529.html
使用jsencrypt
庫進行RSA
等加密
下載本地調用:
<script src="jsencrypt.js"></script>在線遠程調用:
<script src="https://cdn.bootcdn.net/ajax/libs/jsencrypt/3.3.2/jsencrypt.js"></script>
http://tool.chacuo.net/cryptaes
公鑰加密,私鑰解密(反之私鑰加密,公鑰解密)
安全測試–AES-DEMO
一個登錄頁面,密碼被加密對安全測試的影響。
如果用戶傳輸的密碼是加密的,那么在進行爆破的時候也要對應加密傳輸,如果直接傳明文過去,對方一接收解密就會出錯,從而造成干擾。
從加密數據逆向代碼分析加密邏輯
如果要本地調試
安全測試-MD5-某真實博客
如果要本地調試
安全測試-AES-某真實系統
二、演示案例-WEB開發-在線混淆-代碼混淆
混淆代碼的主要目的是保護源代碼,防止未經授權的復制、篡改或逆向工程。通過對變量名、字符串和控制流的修改,混淆代碼看似毫無邏輯,但本質功能未變。混淆技術常用于商業應用和惡意軟件中。
壓縮
去除js
代碼中的不必要的空格、換行等內容。使源碼壓縮為幾行內容,降低代碼可讀性,提高網站的加載速度。
混淆
使用變量替換、僵尸函數、字符串陣列化、控制流平坦化、調試保護等手段,使代碼變得難以閱讀和分析,達到最終保護的目的,不影響代碼原有功能,是理想、實用的javascript
保護方案。
在線混淆
https://obfuscator.io/ //國外的js混淆網站