前言:
base64 的主要目的並不是為了保證不被破解,而是確保接收方使用「正確的方法」就能取得原始內容;
在這個前提下,任何基於 base64 的改進都是沒有意義的,既不安全也不通用;
原文 ——base64
中文 —— 漢語拼音
甚至不需要特別制定一套拼音,臺灣的注音符號ㄅ ㄆ ㄇ ㄈ ㄉ ㄊ ㄋ ㄌ ㄍ ㄎ ㄏ ㄐ ㄑ ㄒ ㄓ ㄔ ㄕ ㄖ ㄗ ㄘ ㄙ
對我來說已經是天書了;
然而,漢語拼音或注音符號是為了加密嗎?
事實上,你可以直接將 base64 排除在「加密」的範疇之外。
以下是 lz-string.js 這個庫針對相同輸入的「加密」結果,嚴格來說,這個庫的主要用途並不是加密,而是壓縮;
// LZString.compress(str)
\ ᮂ悅Ǫ鵞᐀
← 開頭還有零寬空白?
↑ 這個不僅對人類不可讀,因為特殊字符的關係,複製出來後已經損壞了;
// LZString.compressToBase64(str)
G4JgpgHqnV4UA===
↑ 二次處理成 base64,確保在存儲和傳輸過程中不會丟失信息;