ジェネレーターツール
ランダムな識別子、安全なパスワード、QRコードを作成するジェネレーター群 — すべてブラウザ内でローカルに計算され、重要な部分では暗号学的に安全な乱数を使用します。
よく使う変換
クリックするだけで、その作業用に設定済みのツールが開きます。
オンラインジェネレーター - 識別子・パスワード・QRコード
開発者が何もないところから作り出す必要に最もよく迫られるもののうち三つが、一意な識別子、誰にも推測できない秘密、そして機械が読めるリンクです。このカテゴリのツールはその三つを揃えており、どんな機能よりも重要な性質を共有しています。ランダム性はあなた自身のブラウザの暗号用ジェネレーターから来ており、結果はどこにも送信されません。
このカテゴリにあるもの
| ツール | 作るもの | 使う場面 |
|---|---|---|
| UUIDジェネレーター | UUID v1・v3・v4・v5・v7 を、一つずつでも一度に千個でも | 主キー、相関 ID、衝突しえないファイル名が必要なとき |
| パスワードジェネレーター | 長さと文字種を調整できるランダムなパスワードとパスフレーズ | 誰にも推測されず、使い回されるべきでない資格情報を作るとき |
| QRコードジェネレーター | URL、テキスト、Wi-Fi、連絡先のための QR コード | リンクを画面や印刷物から誰かのスマートフォンへ移す必要があるとき |
| CSSジェネレーター | スライダーとライブプレビューで作るグラデーション、ボックスシャドウ、角丸 | CSSをスタイルシートに貼り付ける前に、効果の見た目を目で確かめたいとき |
| メタタグ生成ツール | Google、Facebook、Xのライブプレビュー付きで作るSEO用メタタグ、OGPタグ、Xカードのタグ | ページの公開を控え、検索結果でもシェアされたときにも正しく見えるようにしたいとき |
ジェネレーターが信頼に足る条件
ランダムに見える数値なら、どの言語でも作れます。しかし推測不可能でなければならないものに使える関数はごく限られます。JavaScript の Math.random() は、わずかな内部状態から種を得る高速な疑似乱数生成器です。出力が十分に集まれば、攻撃者は残りを予測できます。カルーセルをシャッフルするには十分ですが、パスワードやセッショントークンを生成するには不適です。
ブラウザにおける正しい供給源は crypto.getRandomValues() で、OS の暗号論的に安全なプールから汲み上げます。TLS の種を供給しているのと同じプールです。ここのパスワードジェネレーターもUUIDジェネレーターもこれを使っています。どのジェネレーターにも投げかける価値のある問いです。外から見れば両者は見分けがつかず、どちらもランダムに見える文字列を出すからです。
信頼性のもう半分は、その値がどこへ行くかです。サーバー上で生成されたパスワードは少なくとも一度は送信されており、ログやキャッシュ、バックアップに残っているかもしれません。ブラウザで生成するということは、あなたが保存すると決めるまで、唯一の複製は画面の上にあるものだけだということです。
識別子の形式を選ぶ
UUID は 128 ビットで、36 文字として書かれます。その要点は、一度も通信したことのない二台の機械がそれぞれ一つずつ発行しても衝突しないと確信できることです。この性質があるからこそ、スマートフォンはオフラインでレコードを作れ、キューのワーカーは書き込まれる前の行を参照でき、二つのデータベースは何も振り直さずに統合できます。
v4 は汎用の既定値です。122 ビットのランダムで、埋め込まれたメタデータはありません。v7 は先頭ビットにミリ秒のタイムスタンプを置くので、値は素の文字列のまま時系列に並び、新しい行はインデックス内に散らばらず末尾に着地します。混み合ったテーブルの主キーにはこちらが正解です。v3 と v5 は決定的で、同じ名前空間と同じ名前からは常に同じ UUID が得られます。URL から安定した ID を導くのはこの方法です。v1 は主に古いデータを読むときに出会います。
連番の整数は、UUID が漏らさない情報を漏らします。/invoice/1042 は、見た人におおよその発行枚数を伝え、1043 を試してみようと誘います。これはセキュリティ対策ではなく設計上の考慮ですが、現実の考慮です。
パスワードを本当に強くするもの
長さは複雑さに勝ります。文字を一つ増やすたびに探索空間はアルファベットの大きさだけ倍加しますが、短いパスワードに記号を一つ足しても倍加は一度きりです。小文字と数字だけの 20 文字は、記号と大文字を含む 8 文字よりはるかに攻撃しにくく、しかも入力はずっと楽です。
多くのサイトが課す複雑さの規則 - 大文字を一つ、数字を一つ、記号を一つ - は、人間が password を選ぶのを防ぐために設計されたものです。生成されたパスワードには何の助けにもならず、先頭に大文字、末尾に 1! といった予測しやすい型へ人を追い込みます。生成したパスワードはサイトが受け付ける最大の長さにし、文字種は受け入れられるものに任せてください。
- 絶対に使い回さない。 クレデンシャルスタッフィングが成立するのは、一つの流出サイトが他の二十のサイトへの有効なログインを攻撃者に渡してしまうからです。
- パスワードマネージャーを使う。 生成したパスワードを覚えられないことこそが狙いであり、何かがそれを保管しなければなりません。
- 紛らわしい文字に注意。 読み上げたり紙から打ち込んだりするなら、
l・I・1・O・0を除外しましょう。 - パスフレーズにも出番がある。 ランダムな単語をいくつか並べたものは覚えやすくて長く、本当に記憶しておくべき数少ないパスワード - 端末のログイン、パスワードマネージャー自身 - に向いています。
- 定期変更はもう推奨されない。 現在の指針は、漏洩の疑いがあるときに変えることであって九十日ごとではありません。強制的な変更は予測しやすい変形を生むだけです。
QRコード: 何を運び、何を運べないか
QR コードは短いテキストを保持する二次元バーコードです。多くは URL ですが、Wi-Fi の資格情報、電話番号、カレンダーの予定、vCard も入ります。ホストされた画像へのリンクではありません。データは模様そのものの中にあるので、生成したコードは背後に何のサービスもなく永久に機能し続けます。
ここのQRコードジェネレーターはブラウザ内で模様を組み立てるため、エンコードした URL が第三者に記録されることはありません。リンクが社内ダッシュボードや署名付き URL のときには知っておく価値があります。実務上の二点。誤り訂正により、一部が損傷したりロゴで覆われたりしてもコードは読み取れますが、その代わり模様は密になります。そしてサイズよりコントラストが効きます。コードには周囲の静かな余白と、明地に暗のパターンが必要です。反転や低コントラストのコードは多くのスキャナーで失敗します。
関連カテゴリ
- 開発者ツール - 生成した値の指紋が必要ならハッシュ化し、v1 や v7 の UUID が持つタイムスタンプを読む。
- エンコーディングツール - 生成したシークレットは、設定ファイルやヘッダーに収まる前にたいていBase64 でエンコードされます。
- テキストツール - 生成した識別子をまとめて貼り付ける先の JSON を検証する。