Base64-Hex 互轉
Base64與十六進位(Hex)雙向線上互轉工具,支援Hex位元組序列轉Base64編碼、Base64解碼為Hex字串。自動辨識並處理空白、換行符號分隔的Hex輸入,自動去除0x前綴,Base64轉Hex支援選擇小寫或大寫輸出,輸入後即時轉換,錯誤(非法字元、奇數長度Hex)即時提示,支援一鍵複製結果、下載為txt檔案、雙向切換時自動交換內容,純瀏覽器本機JavaScript處理,不上傳任何資料,適合擷取封包資料分析、網路通訊協定除錯、二進位日誌轉碼、API介面參數處理。
相關推薦
關於Hex十六進位與Base64編碼
在電腦和網路開發中,我們經常需要在不同的二進位表示格式之間轉換。十六進位(Hexadecimal,簡稱Hex)和Base64是兩種最常用的二進位資料文字表示方式,各有其適用場景:Hex方便人類逐位元組閱讀除錯,Base64適合在文字通訊協定中傳輸二進位資料,開發者經常需要在兩者之間轉換。
十六進位使用0-9和A-F共16個字元表示資料,每個位元組對應兩個十六進位字元(00到FF),一個位元組正好是兩位十六進位數。這種表示方式非常直觀——兩個字元一個位元組,很容易對齊查看,所以擷取封包工具(Wireshark、Charles)、十六進位編輯器、除錯器、通訊協定文件都習慣用Hex展示二進位資料,方便開發者定位位元組偏移和欄位值。
Base64是一種用64個可列印ASCII字元(A-Z、a-z、0-9、+、/,加上=作為填充)表示任意二進位資料的編碼方式。它的主要作用是讓二進位資料可以安全地透過只能處理文字的通訊協定傳輸——比如JSON裡不能直接放原始二進位位元組,HTTP Header值不能包含非列印字元,Email內文不能直接帶附件——把二進位編碼成Base64文字就解決了這個問題,代價是編碼後體積增加約33%(每3位元組編碼為4個字元)。
為什麼不直接在介面裡用Hex傳輸二進位?當然也可以,但Base64比Hex效率高一些:Hex每位元組用2個字元表示,編碼效率是50%(1位元組→2字元);Base64每3位元組用4個字元表示,編碼效率是75%。所以同樣的二進位資料用Base64表示更短,在文字傳輸場景更常用;但Hex更直觀便於人工閱讀分析,所以擷取封包除錯用Hex,介面傳輸用Base64,兩者之間的轉換就成了開發者常見需求。
本工具的轉換完全是位元組層面的純轉碼,不涉及任何文字編碼(UTF-8、Big5等)假設:Hex字串直接解析為位元組陣列,位元組陣列直接編碼為Base64;反過來Base64直接解碼為位元組陣列,位元組陣列直接輸出為Hex字串。這一點很重要——普通的「字串Base64編碼」會涉及文字編碼轉換,但Hex↔Base64是純位元組表示之間的轉換,結果是確定唯一的,不會有亂碼問題。
工具支援彈性的輸入格式是考慮到實際使用場景:Wireshark預設輸出的Hex就是每個位元組之間空白分隔,很多文件裡的Hex會帶0x前綴,複製貼上時經常帶換行。自動去除空白和0x前綴可以省去手動清理的麻煩,直接貼上就能轉換,大幅提升除錯效率。
大小寫選擇也是實用功能:不同規範和系統對Hex大小寫偏好不同——Unix系工具和很多開源專案習慣用小寫(a-f),Windows和某些企業規範習慣用大寫(A-F),密碼學領域有時要求大寫。工具在Base64轉Hex時提供大小寫切換,不需要手動轉大小寫。
純本機處理是安全和速度的保證:編碼轉換本質是簡單的數學運算,不需要任何服務端計算,在瀏覽器本機用JavaScript處理速度極快(微秒級),而且敏感資料(金鑰、簽章、未公開的通訊協定資料)不會離開你的電腦,不存在網路傳輸外洩風險。即使在內網隔離、離線環境下也能正常使用。
適用場景
- 將Wireshark、Charles、Fiddler等擷取封包工具輸出的十六進位二進位資料轉換為Base64,用於API介面除錯
- 把介面回傳的Base64編碼二進位資料解碼為Hex,逐位元組分析通訊協定欄位內容
- 處理加密金鑰、簽章、雜湊值在Hex表示和Base64表示之間的轉換
- 網路通訊協定開發除錯時,在擷取封包Hex格式和介面Base64參數格式之間快速轉換
- 二進位日誌分析:將日誌中的十六進位dump內容轉為Base64用於問題重現,或反向轉換
- CTF比賽、資安研究中處理編碼題,快速在Hex和Base64之間切換
- 開發時根據介面文件把Hex表示的二進位資料轉為Base64放入JSON請求主體
- 對接第三方API時,把文件中的Hex範例轉為實際可用的Base64參數值
- 將Hex格式的二進位檔案片段轉為Base64,用於data URI或嵌入設定檔
- 驗證Base64編碼解碼是否正確,轉回Hex對比原始位元組序列
- 學習編碼原理時直觀觀察Hex和Base64兩種編碼方式的對應關係
- 行動裝置除錯時臨時轉碼,不用打開電腦就能快速處理編碼問題
使用方法
- 選擇轉換方向:Hex→Base64 或 Base64→Hex,需要大寫Hex輸出時在Base64→Hex模式選擇「大寫」
- 將待轉換的Hex字串或Base64字串貼上到左側輸入框(支援空白分隔、帶0x前綴的Hex)
- 輸入後工具自動即時轉換,右側立即輸出結果,如有錯誤會顯示紅色提示
- 點擊複製按鈕複製結果,或點擊下載按鈕儲存為txt檔案;切換方向會自動帶入結果繼續轉換
功能特點
- 雙向互轉:同時支援Hex轉Base64和Base64轉Hex,一個工具滿足兩種方向轉換需求
- 智慧輸入處理:自動去除Hex中的空白、換行符號、0x前綴,支援連續Hex和空白分隔格式(如48 65 6C 6C 6F)
- Hex大小寫選擇:Base64轉Hex時支援輸出小寫(a-f)或大寫(A-F)十六進位,滿足不同場景需求
- 即時轉換:輸入後300ms防抖自動轉換,無需點擊按鈕,輸入即時出結果
- 明確錯誤提示:非法十六進位字元、Hex字串長度不為偶數時給出中文錯誤提示,便於排查
- 雙向智慧切換:切換轉換方向時自動將輸出結果作為輸入,方便雙向驗證和快速轉回
- 一鍵複製結果:轉換完成後一鍵複製輸出內容到剪貼簿,直接用於介面參數或文件
- 結果下載:支援將轉換結果下載為txt文字檔,方便儲存和分享
- 一鍵清空:快速清空輸入輸出內容,重新開始轉換
- 字元計數:輸入輸出區域即時顯示字元數,方便預估資料長度
- 等寬字體顯示:程式碼等寬字體展示十六進位和Base64內容,閱讀體驗更適合開發者
- 面板寬度可調:電腦端可拖曳中間分隔條調整輸入輸出面板寬度比例
- 行動裝置適配:響應式設計,手機上使用tab切換輸入和輸出區域,觸控友善
- 純本機瀏覽器處理:所有轉換在瀏覽器本機JavaScript完成,不經過任何伺服器,資料安全不上傳
常見問題
支援哪些輸入格式?
Hex輸入支援:①連續十六進位字串(如48656C6C6F);②空白分隔位元組(如48 65 6C 6C 6F);③帶0x前綴格式(如0x48 0x65);④帶換行分隔的多行Hex。工具會自動去除空白和前綴後再轉換。Base64輸入自動忽略空白字元。
可以把Base64轉回十六進位嗎?
可以。點擊方向切換按鈕選擇「Base64 → Hex」即可將Base64解碼為十六進位字串,還可以選擇輸出小寫還是大寫的Hex。
為什麼提示「Hex字串長度必須為偶數」?
因為十六進位中兩個字元表示一個位元組(00-FF),所以合法的Hex字串長度一定是偶數。如果出現這個錯誤,請檢查輸入是否多打/少打了一個字元,或者是否複製時截斷了。
為什麼提示「包含非法的十六進位字元」?
十六進位只允許0-9和a-f/A-F這16個字元,出現其他字元(比如g-z、特殊符號)就會報錯。請檢查是否複製了非Hex內容,或者是否把Base64貼到了Hex輸入框。
轉換方向切換會丟失內容嗎?
不會。點擊方向切換按鈕時,工具會自動把目前輸出內容作為新方向的輸入,你可以方便地把轉換結果轉回去驗證,不需要手動複製貼上。
輸入的Hex帶0x前綴能處理嗎?
可以。工具會自動偵測並去除開頭的0x前綴,不管是整個字串開頭有0x,還是每個位元組前有0x(如0x48 0x65)都能正確處理。
轉換結果可以直接用於API請求嗎?
可以。轉換輸出的Base64是標準RFC 4648編碼的純文字字串,可以直接放入JSON欄位、HTTP請求主體、URL參數(注意URL編碼)或Header中;輸出的Hex是純十六進位字串,可以直接用於二進位通訊協定描述、金鑰表示等場景。
為什麼需要在Hex和Base64之間轉換?
擷取封包工具(如Wireshark、Charles)、通訊協定分析器、二進位日誌通常以十六進位展示位元組流,方便逐位元組查看;但API介面、JSON、文字設定檔通常需要Base64編碼來傳輸二進位資料(因為Base64是純文字安全字元)。Hex→Base64用於把擷取封包得到的二進位資料轉成介面可用的文字格式;Base64→Hex用於把Base64編碼的資料還原為逐位元組可讀的十六進位,方便除錯和分析。
大檔案或長Hex可以轉換嗎?
對於幾十KB大小的內容本機轉換完全沒問題,瀏覽器處理速度很快。由於是純前端textarea輸入,對於特別大的內容(幾MB以上)建議使用專業工具,日常開發擷取封包除錯、介面參數處理完全夠用。
轉換的資料會上傳到伺服器嗎?
不會。所有編碼解碼工作完全在你的瀏覽器本機透過JavaScript完成,輸入的Hex或Base64內容不會透過網路發送到任何伺服器,關閉頁面資料即丟失,敏感的金鑰、擷取封包資料都可以放心處理。
支援大寫十六進位輸出嗎?
支援。在Base64轉Hex模式下,可以切換「小寫」/「大寫」按鈕選擇輸出a-f還是A-F,有些通訊協定、規範或文件要求大寫Hex輸出。
在手機上能用嗎?
可以。工具採用響應式設計,在手機上使用時輸入輸出分tab顯示,面板尺寸適配手機螢幕,觸控操作友善,外出除錯時也能快速轉換。
轉換結果怎麼儲存?
兩種方式:①點擊複製按鈕直接複製到剪貼簿,貼到你需要的地方;②點擊下載按鈕(下載箭頭圖示),會把結果儲存為txt文字檔到本機。
Hex和Base64分別是什麼?
十六進位(Hexadecimal/Hex)是用0-9和A-F共16個字元表示二進位資料的方式,每個位元組用兩個字元表示(00-FF),適合人類逐位元組閱讀二進位內容。Base64是用64個可列印字元(A-Z,a-z,0-9,+,/)表示二進位的編碼方式,主要用於在文字通訊協定(如JSON、HTTP、Email)中安全傳輸二進位資料,編碼後體積比原始二進位大約增加33%。
這個工具和單純的Base64編碼解碼有什麼區別?
普通Base64編解碼是文字字串↔Base64,而本工具處理的是原始位元組序列:Hex本身就是位元組的十六進位表示,Hex↔Base64轉換是純位元組層面的轉碼,不涉及文字編碼(UTF-8/Big5等)問題,適合處理真正的二進位資料、加密金鑰、通訊協定封包等。
故障排查
貼上Hex後提示非法字元怎麼辦?
檢查輸入中是否包含g-z/G-Z以外的字母、中文標點、特殊符號。Wireshark複製的Hex有時會帶ASCII側欄內容,只複製十六進位部分即可。另外確認轉換方向是Hex→Base64,不要把Base64貼到Hex輸入框。
Hex長度是奇數報錯是什麼原因?
兩個Hex字元表示一個位元組,合法Hex一定是偶數長度。常見原因:①複製時漏掉了最後一位;②開頭的0x被算成了內容導致長度減2後為奇數;③中間多了空白導致解析錯誤,請確認每個位元組都是兩個字元。
Base64解碼失敗報錯怎麼辦?
檢查:①Base64是否完整,有沒有截斷;②是否包含非法字元(Base64只允許A-Z,a-z,0-9,+,/,=);③末尾填充=數量是否正確(0、1或2個);④是否是URL安全Base64(用-和_代替+和/),本工具目前不支援URL安全Base64。
為什麼我轉出來的Base64和別人的不一樣?
如果是文字字串的Base64,不同編碼(UTF-8、Big5)結果不同;但本工具是Hex↔Base64純位元組轉碼,只要Hex相同輸出Base64一定相同,如果不同請檢查:①Hex是否完全一致(包括空白其實不影響,但0x也不影響);②大小寫不影響Hex解析;③是否有不可見的特殊字元混在Hex裡。
術語表
- 十六進位 (Hex/Hexadecimal)
- 基數為16的計數系統,用0-9和A-F(a-f)表示數值,兩個十六進位字元正好表示一個位元組(00-FF),是二進位資料最直觀的文字表示方式,廣泛用於除錯、擷取封包和通訊協定文件。
- Base64
- 一種基於64個可列印ASCII字元的二進位編碼方式,將3位元組二進位編碼為4個文字字元,用於在JSON、HTTP、Email等文字通訊協定中安全傳輸二進位資料,編碼後體積增加約1/3。
- 位元組 (Byte)
- 電腦資料的基本單位,1位元組=8位元(bit),可表示0-255之間的數值,在Hex中用兩個字元表示,是網路通訊協定和二進位資料的基礎單位。
- RFC 4648
- Base64編碼的官方標準文件,定義了標準Base64和URL安全Base64的編碼規則,本工具使用的是標準Base64編碼。
- 0x前綴
- 程式設計中表示十六進位數的常用前綴(如0x1A表示十進位26),很多文件和程式碼中的Hex會帶0x前綴,工具會自動辨識並去除。
- Wireshark
- 最流行的網路擷取封包分析工具,預設以十六進位+ASCII形式展示網路封包內容,是開發者除錯網路通訊協定的常用工具,其輸出的Hex資料是本工具常見輸入來源。
- 二進位轉碼
- 指在不同的二進位資料表示格式(Hex、Base64、Base32、Base58等)之間轉換,不改變原始資料本身,只是改變表示方式。
- 等寬字體 (Monospace)
- 每個字元寬度相同的字體,適合展示程式碼、十六進位資料、表格等對齊要求高的內容,工具預設使用系統等寬字體顯示編碼內容。
- 防抖 (Debounce)
- 前端常用效能優化技術,輸入停止300ms後才執行轉換,避免每次按鍵都執行計算,提升大量輸入時的流暢度。
- 編碼效率
- 原始資料長度與編碼後長度的比值,Hex編碼效率50%(1位元組→2字元),Base64編碼效率75%(3位元組→4字元),Base64比Hex節省約25%的文字長度。
- 填充字元 (=)
- 標準Base64編碼末尾的=號用來填充,讓編碼後長度為4的倍數,解碼時填充字元會被忽略,屬於標準Base64的一部分。
- 本機處理
- 所有計算在使用者瀏覽器內透過JavaScript完成,資料不上傳到伺服器,既快又安全,適合處理敏感資料。
Hex與Base64編碼特性對比
兩種二進位表示方式的特點對比:
| 特性 | 十六進位 (Hex) | Base64 |
|---|---|---|
| 字元集 | 0-9, A-F (16個字元) | A-Z,a-z,0-9,+,/,= (65個字元) |
| 編碼效率 | 50% (1位元組 → 2字元) | 75% (3位元組 → 4字元) |
| 可讀性 | 高(兩字元一位元組,便於逐位元組分析) | 低(不直觀,不易直接閱讀) |
| 典型用途 | 擷取封包分析、十六進位編輯器、通訊協定文件、金鑰表示 | JSON/HTTP/Email傳輸二進位,Data URI,API參數 |
| 大小寫敏感 | 不敏感(a-f和A-F等價) | 敏感(A和a是不同編碼) |
| 範例("Hello") | 48656C6C6F | SGVsbG8= |
常見二進位資料編碼對照表
文字"Hello"在不同編碼下的表示:
| 編碼格式 | 編碼結果 | 字元長度 |
|---|---|---|
| 原始文字 | Hello | 5位元組 |
| Hex (小寫) | 48656c6c6f | 10字元 |
| Hex (大寫) | 48656C6C6F | 10字元 |
| 標準Base64 | SGVsbG8= | 8字元 (含1個填充) |
常見錯誤排查表
轉換出錯時參考:
| 錯誤提示 | 可能原因 | 解決方法 |
|---|---|---|
| 包含非法的十六進位字元 | Hex中出現了g-z、G-Z或特殊符號 | 檢查是否誤貼Base64或其他文字,刪除非法字元 |
| Hex字串長度必須為偶數 | Hex字元數是奇數,少打/多打了一位 | 檢查輸入開頭結尾,確認沒有截斷 |
| (Base64解碼報錯) | Base64字串損毀、長度不對或含非法字元 | 檢查Base64是否完整,有沒有缺填充= |
Privacy & Security
本Base64-Hex互轉工具所有編碼解碼工作完全在你的瀏覽器本機透過JavaScript完成,你輸入的Hex字串和Base64內容不會被上傳到任何伺服器,也不會被記錄、快取或儲存。輸入、轉換、複製、下載都在本機瀏覽器記憶體中進行,關閉或重新整理頁面後所有臨時資料自動清除。敏感的加密金鑰、擷取封包資料、內部通訊協定資料都可以放心處理,不存在任何外洩風險。
Authoritative References
- 安全字串比較
- 二進位轉換
- 凱薩密碼
- 摩斯密碼
- 十六進位轉換
- 影片轉 Base64
- Base64 轉影片
- 圖片轉 Base64
- Base64 轉圖片
- 文字轉 Base64
- Base64 轉文字
- 檔案雜湊校驗
- 檔案轉 Base64
- Base64 轉檔案
- 音訊轉Base64
- Base64轉音訊
- AES 加密解密
- DES 加密解密
- Base32 編碼解碼
- Base58 編碼解碼
- Base64 編碼
- Base64 解碼
- Base64 比較
- Base64 拆分
- Base64 多行合併
- Base64 格式化
- Base64 格式檢查
- Base64 批次編碼
- Base64 批次解碼
- Base64 清理
- Base64 填充處理
- Base64 長度統計
- Base64 轉十六進位
- Base64 DataURL 轉換
- Base64-Hex 互轉
- Base85 編解碼器
- HMAC 生成與驗證
- PBKDF2 金鑰派生
- MD5 雜湊
- SHA-256 雜湊
- SHA1 雜湊
- SHA512 雜湊
- JWT 工具
- HTML 實體編碼解碼
- Unicode 跳脫
- URL 編碼
- URL Safe Base64
- MIME Base64
- Java 混淆
- JS 混淆
- PHP 混淆
- Python 混淆