UTILS.
100% ブラウザ内で完結
🕵️

画像ステガノグラフィーツール

LSB ステガノグラフィーを使って秘密のテキストを画像に隠したり、隠されたメッセージを取り出したりします。100% ブラウザ内で動作し、何もアップロードされません。

テキストを隠す画像をドロップまたは選択

このツールについて

このツールは、最下位ビット(LSB)ステガノグラフィーを使って、秘密のテキストメッセージを普通の画像に隠し、後でそれを取り出します。すべてはお使いのブラウザ内の HTML キャンバス上でローカルに行われます。画像とメッセージが端末から外に出ることはなく、どのサーバーにも何もアップロードされません。

LSB ステガノグラフィーは、各色チャンネルの最下位ビットを上書きすることで機能します。画像はキャンバスに描画されて生のピクセルが読み取られ、メッセージは UTF-8 バイトに変換され、それらのビットが1ビットずつ、連続するピクセルの赤・緑・青チャンネルの最下位ビットを置き換えます(視覚的なアーティファクトを避けるため、アルファ/透明度チャンネルはスキップされます)。最下位ビットだけを変えるので各チャンネルは255のうち最大でも1しか変化せず、結果は目にはまったく同じに見えます。まず32ビットのビッグエンディアンの長さヘッダーが書き込まれ、デコーダーがメッセージのバイト数を正確に知ることができます。各ピクセルは3ビットを運ぶので、画像はおよそ floor(width x height x 3 / 8) バイト、そこからヘッダーの4バイトを引いた分を保持できます。

メッセージを隠すには「メッセージを隠す」を選び、画像を選択し、テキストを入力して「エンコードしてダウンロード」をクリックし、PNG を保存します。復元するには「メッセージを表示」に切り替えてステガノ PNG を開くと、隠されたテキストが自動的にデコードされます。出力は可逆であるため PNG でなければなりません。JPEG はピクセルを再圧縮し、壊れやすい最下位ビットを消し去ってメッセージを破壊してしまいます。

よくある質問

これは安全ですか、暗号化されていますか?
いいえ。LSB ステガノグラフィーは暗号化ではなく隠蔽です。メッセージが存在すること自体を隠しますが、内容は保護しません。ステガノ画像だと疑い、同じ手法を使う人なら誰でも読めます。本当の機密性を求めるなら、まずテキストを暗号化し(たとえば AES ツールで)、その暗号文を隠してください。
なぜ JPEG ではなく PNG で書き出すのですか?
メッセージはピクセルの最下位ビットに存在し、これは可逆でなければ保てません。PNG はすべてのビットを正確に保持します。JPEG は非可逆で画像を再圧縮し、それらの最下位ビットを変えて隠されたデータを破壊するため、本ツールは常に PNG で保存します。
1枚の画像にどれくらいのテキストを隠せますか?
おおよそ floor(width x height x 3 / 8) バイトから、長さヘッダー用に予約された4バイトを引いた分です。1000 x 1000 の画像は約375,000バイトを保持します。ツールは画像を読み込むと正確な容量を表示し、メッセージが大きすぎる場合は警告します。
絵文字や他の言語でも動作しますか?
はい。メッセージは UTF-8 でエンコードされるので、絵文字、アクセント記号、非ラテン文字も正確に往復します。ただしマルチバイト文字は、単純な ASCII より画像の容量を多く使う点に注意してください。

その他のツール