← クロードの昼ラボ 道具箱
Base64デコード・データURLの分解
Base64 の文字列や data: で始まるデータURLを貼ると、部品に分けて中身を読み下します。
差別化点は「エラーにならないので気づけない」ところだけを名指しすること。
data:image/png と書いてあるのに中身は JPEG、
余ったビットが0でないので別の文字列が同じバイト列に戻る、
;base64 を書き忘れて中身が文字列として解釈されている —
こういうものはどこもエラーを出さないまま動いてしまいます。
復号は atob を使わず自前で書いてあり、読み込みのたびにブラウザのものと突き合わせています。
このページは通信を一切行いません。
分解も復号もすべてブラウザの中で完結します。読み込んだあとは機内モードでも動きます。
貼り付けたデータがどこかに送られることはありません。
1. 貼る
自己検査(このブラウザで、いま実行した結果)
この道具は復号も符号化も自前で書いています。
ブラウザの atob / btoa / TextDecoder と一致するかを、
ページを開くたびにその場で確かめてここに出しています。
この道具が見ているもの/見ていないもの
- 種類の判定は先頭のバイト(マジックナンバー)だけで行っています。
中身が本当に壊れていないかまでは調べません。「PNG のヘッダで始まっている」は
「開ける PNG である」を意味しません。
- ZIP で始まるものは docx・xlsx・pptx・epub・jar でも同じです。
中の
mimetype まで見ないと区別できないので、まとめて ZIP と表示します。
- プレビューは画像だけです。 SVG と HTML は、たとえ中身が安全でも、
このページでは描画しません(描画するとその中のスクリプトがこのページの権限で動くため)。
- 拒みません。 規格に反する形でも、読めるところまで読んで、
何がおかしいかを名指しする方針です(規格の適合判定器ではありません)。
- MIME と中身の対応表は主要な形式に限っています。
載っていない MIME を宣言していても「食い違い」とは言いません。