> zeromq | 原始碼安全 | 高效 <
// Z85 —— ZeroMQ 的 Base85 變體,適合安全嵌入原始碼與 JSON
[SOURCE-SAFE]
對原始碼友善
不包含引號、反斜線與空白等敏感字元,適合直接嵌入 C/C++ 字串、組態檔與 JSON 欄位。
[EFFICIENT]
高資訊密度
每 4 個位元組對應 5 個字元,約 25% 體積膨脹,相較 Base64(約 33%)更精簡。
[ZEROMQ]
ZeroMQ 標準
ZeroMQ 在文字協定中封裝二進位負載時採用的官方 Base85 編碼方案。
>> 技術說明
Z85 的運作方式:
Z85 使用 85 個可列印 ASCII 字元,將每 4 個位元組編碼為 5 個字元。其字母表刻意避開在 C/C++ 字串與 JSON 中需要跳脫的字元,降低手動處理跳脫字元與潛在錯誤的風險。
範例:
"Hello" → nm=QNz.92
為什麼使用 Z85:
- >希望將二進位資料直接嵌入到原始碼或組態檔
- >希望在 JSON、YAML、XML 等文字格式中盡量減少跳脫字元
- >希望比 Base64 更精簡的文字表示方式
- >正在使用 ZeroMQ 或與其訊息協定整合的情境
- >需要在文字型 API 中統一二進位 payload 的表示形式
>> 常見問題
什麼是 Z85 編碼?
Z85 是由 ZeroMQ 定義的一種 Base85 編碼格式,使用 85 個精選的 ASCII 可列印字元,避免大多數在原始碼與 JSON 中需要跳脫的字元。
Z85 與一般 Base85 有何差異?
Z85 採用與其他 Base85 實作不同的字元表,刻意排除了引號、反斜線、空白等在程式碼中較難處理的字元,方便直接貼入原始碼。
哪些情境適合使用 Z85?
適合用在程式庫範例、組態檔、文字協定 payload(特別是 ZeroMQ 訊息)等需要將二進位內容嵌入文字的情境。
Z85 對資料長度有什麼限制?
Z85 要求原始二進位長度為 4 位元組的倍數。編碼過程可以透過補零或填充來滿足,解碼時則需根據此限制正確還原。