合言葉で暗号化メモ
テキストを合言葉(パスワード)で暗号化・復号
AES-256 / ブラウザ内だけで処理・送信なし
🛒 おすすめグッズ
パスワード管理・セキュリティに役立つ本とツール
使い方・特徴
「テキスト → 暗号文」モードで、合言葉とテキストを入力して実行。意味のないBase64文字列に変換されます。合言葉を知らない人には読めません。
「暗号文 → テキスト」モードに切り替え、受け取った暗号文と同じ合言葉を入力して実行。合言葉が正しければ元のテキストに戻ります。
「🎲 合言葉を生成」で、推測されにくい強力な合言葉を作成。強度メーターで安全度の目安も確認できます。
AES-GCMの認証タグにより、暗号文が途中で書き換えられた場合は復号がエラーになります。合言葉違いと改ざんを区別して通知します。
処理はすべてブラウザ内で完結。テキストも合言葉もネットワークに送信されないため、機密メモも安心して扱えます。
暗号文はただの文字列なので、メール・チャット・メモアプリにそのまま貼り付けて保存・共有できます。合言葉は別経路で伝えましょう。
🔧 暗号化の仕様
本ツールが内部で使用している方式の一覧です。
| 項目 | 採用方式 |
|---|---|
| 暗号化アルゴリズム | AES-GCM 256bit |
| 鍵導出(合言葉→鍵) | PBKDF2(HMAC-SHA-256) |
| 反復回数 | 200,000 回 |
| ソルト | 16 バイト乱数(暗号化のたびに生成) |
| IV(初期化ベクトル) | 12 バイト乱数(暗号化のたびに生成) |
| 改ざん検知 | GCM 認証タグ 128bit |
| 出力形式 | Base64(ソルト + IV + 暗号文 を連結) |
| 処理場所 | ブラウザ内のみ(サーバー送信なし) |
※ 採用しているのはWeb標準のWeb Crypto API(crypto.subtle)です。同じソルト・IVを毎回生成するため、同じ文章でも暗号化のたびに異なる暗号文になります。
🙋 作った人のひとりごと
「暗号化ツール」なんて大層な名前ですが、作る過程は勘違いと勘違いの連続でした。恥ずかしい話も含めて、正直に残しておきます。
😰 最初、Base64を「暗号化」だと思っていました
お恥ずかしい話、作り始めのころは「文字を変換して読めなくする=暗号化」くらいの認識でした。でもBase64は鍵もいらず、誰でも一瞬で元に戻せるただの変換で、暗号ではないんですよね。「合言葉を知っている人だけが戻せる」本物の暗号(AES)にたどり着くまでに、自分がいちばん勉強になりました。今このツールの出力がBase64“風”なのは、あくまで持ち運びやすい見た目にするためで、中身はちゃんと暗号化されています。
🧂 「同じ文章なのに毎回結果が違う」でバグを疑った
テスト中、同じテキストと同じ合言葉で暗号化しているのに、毎回まったく違う暗号文が出てきて。「え、壊れてる?」と本気で焦りました。でもこれ、毎回ランダムな“味付け”(ソルトとIV)を混ぜているから正しい挙動なんです。むしろ毎回同じ暗号文が出るほうが危険(パターンが読まれる)。正しい実装なのに一瞬バグに見える、という不思議な体験でした。
⏳ わざと“遅く”作っている、変な部分があります
合言葉から暗号鍵を作る計算を、なんと20万回も繰り返しています。普通コードは速いほど良いはずなのに、ここはあえて重くしてあるんです。理由は、総当たりで合言葉を破ろうとする攻撃側にも同じ手間を強いるため。「速くしちゃダメ」なコードをわざわざ書くのは、なんとも落ち着かない気分でした。防御のための遅さ、って面白いですよね。
— MyTool Studio 中の人
🛠️ このツールの「全コード+作り方」をnoteで公開中
上のこぼれ話で触れたソルト・IVの混ぜ方や、あえて遅くする鍵導出(PBKDF2)を、実際のコードでどう書いているか。HTML1ファイルで動く完成版のソースを、コメント付きで丸ごと公開しています。
- コピペで動く完成アプリ一式(HTML1ファイル)
- 全ソースコード+「なぜこう書くか」の解説
- Web Crypto API・PBKDF2鍵導出・AES-GCM改ざん検知の仕組み+カスタマイズ手順つき
noteマガジン「まるっとアプリ」#04/本ツールは無料で使い放題です。