前提として述べた結論:
base64 の主な目的は解読されないことを保証するためではなく、受信側が「正しい方法」を使えば元のコンテンツを取得できることを保証するためです。
この前提のもとで、base64 に基づく改良やアップグレードは意味がありません。安全でもなく、汎用性もありません。
原文 - base64
中国語 - ピンイン
さらに、専用のピンインセットを作成する必要もありません。台湾の注音記号ㄅ ㄆ ㄇ ㄈ ㄉ ㄊ ㄋ ㄌ ㄍ ㄎ ㄏ ㄐ ㄑ ㄒ ㄓ ㄔ ㄕ ㄖ ㄗ ㄘ ㄙ
は私にとって既に天書です。
しかし、ピンインまたは注音記号は暗号化のためですか?
実際、base64 を「暗号化」の範疇から除外しても問題ありません。
以下は、同じ入力に対して lz-string.js ライブラリの 2 つの関数が生成する「暗号化」結果です。厳密に言えば、このライブラリの主な目的は暗号化ではなく圧縮です。
// LZString.compress(str)
\ ᮂ悦Ǫ鵞᐀
← 先頭にゼロ幅スペースがありますか?
↑ これは人間には読めませんし、特殊文字の関係でコピーするとすでに破損してしまいます。
// LZString.compressToBase64(str)
G4JgpgHqnV4UA===
↑ これは base64 に 2 回変換され、情報の損失を防ぐために保存と転送のプロセスで使用されます。