鐵人賽 Day 7 常用演算法 Base64、AES、DES 在逆向工程的應用

鐵人賽 Day 7 常用演算法 Base64、AES、DES 在逆向工程的應用
鐵人賽 Day 7 常用演算法 Base64、AES、DES 在逆向工程的應用

本系列文章所討論的 JavaScript 資安與逆向工程技術,旨在分享知識、探討防禦之道,並促進技術交流。

所有內容僅供學術研究與學習,請勿用於任何非法或不道德的行為。

讀者應對自己的行為負完全責任。尊重法律與道德規範是所有技術人員應共同遵守的準則。

 

在進行 JavaScript 逆向工程時,我們常會看到資料不是直接明文傳輸,而是經過某種演算法處理。

這些處理方式不僅能混淆請求參數,也能增加逆向難度。

許多新手會誤以為 Base64 是一種加密技術但這不是正確的。

Base64 的主要目的是將二進位資料轉換成可列印的 ASCII 字元字串。

會這麼做的主因是因為在網路傳輸或儲存資料時,有些環境只支援純文字,例如 URL 或 JSON 格式。

將圖片、音訊或其他非文字檔案轉換為字串。

編碼後可以輕易地還原成原始資料。

編碼後的字串長度會增加約 33%。

任何人都能輕鬆還原,不具備安全性。

在DES被認為不安全後,由美國國家標準與技術研究院選出的新一代加密標準。

常用於API的敏感資料加密。

由於金鑰長度更長,AES 提供了更高的安全性,至今仍被認為是安全的。

如果金鑰或IV被寫死在前端,逆向即可取得明文。

DES是對稱式加密演算法,加密和解密都使用相同的金鑰。

過去廣泛使用,但現已逐漸被 AES 取代。

56bit 金鑰相對較短。

金鑰太短,因為現在電腦的算力強勁所以相對容易被暴力破解。

作者頭像
Nick

擅長從前端的互動設計到後端的資料處理,都能親自規劃與實作。對我來說開發網站不只是完成功能,而是打造一個能被真正使用、體驗順暢的平台。我喜歡把複雜的技術轉化成簡單好懂的成果,並在這個過程中持續學習與挑戰自己。