本文へスキップ
App Museum
English

パスワード生成ツール

文字数と文字の種類を選んで、安全なランダムパスワードをまとめて生成。英単語をつなげたパスフレーズ、使う記号の指定、紛らわしい文字の除外、強度の目安にも対応。

生成する形式
使う文字

この欄にある記号だけを使います(今は32文字)。記号以外の文字は無視します。

強度の目安: 強い(約104ビット)

使い方

  1. スライダーで文字数(4〜64)を選びます
  2. 使う文字の種類(英大文字・英小文字・数字・記号)にチェックを入れます
  3. 登録先で使えない記号があるときは、「使う記号」の欄からその記号を消します
  4. 手で書き写す予定があるときは「紛らわしい文字を除く」にチェックを入れます
  5. 生成数(1〜20)を入力して「生成」を押します
  6. 各行の「コピー」で1件ずつ、「すべてコピー」で全件を改行区切りでコピーできます

覚えて手で入力するパスワードには、上の「生成する形式」で「単語をつなげたパスフレーズ」を選ぶと、英単語をつなげたパスフレーズも作れます。手順は下の「パスフレーズを作る」を見てください。

最初は、「生成する形式」がランダムな文字列、文字数16、4種類すべてにチェック、「使う記号」は32文字すべて、生成数1の状態です。文字数、使う文字、使う記号、紛らわしい文字の設定を変えると、表示中のパスワードは消えます。強度の目安が今の設定を表すようにするためです。もう一度「生成」を押してください。

パスワードはブラウザの crypto.getRandomValues() で生成され、サーバーとの通信は一切ありません。

具体例

文字数 16、4種類すべてにチェックを入れて「生成」を押すと、次のようなパスワードが表示されます:

t7#Lq9@vZ2!mXw4&

(値は生成のたびにランダムに変わります)

このとき強度の目安は「強い(約104ビット)」と表示されます。

使う文字の一覧

  • 英大文字: A から Z の26文字
  • 英小文字: a から z の26文字
  • 数字: 0 から 9 の10文字
  • 記号: 次の32文字
!"#$%&'()*+,-./:;<=>?@[\]^_`{|}~

4種類すべてを選ぶと94文字です。空白、全角文字、日本語は使いません。

「紛らわしい文字を除く」にチェックを入れると、英大文字から I と O、英小文字から l と o、数字から 0 と 1、記号から | が外れ、4種類すべてで87文字になります。

使う記号を絞る

「記号」にチェックが入っている間は、その下に「使う記号」の欄が出ます。最初は上の32文字がすべて入っていて、生成に使うのはこの欄にある記号だけです。

  • 一部の記号が使えない登録先では、その記号を欄から消します
  • 「使える記号は !@#$% のみ」のように決まっている登録先では、欄を空にしてからその記号を入力するか貼り付けます
  • 「すべての記号に戻す」を押すと、32文字に戻ります

欄の内容は次のように読み取ります。

  • 上の32文字にない文字(空白、英字、数字、全角の記号、日本語)は無視します
  • 同じ記号を2回書いても1文字として扱い、書いた順番は結果に影響しません
  • , や : も記号です。!, @, # のように区切って貼り付けると、, も使う記号に入ります。区切りの文字は消してください

欄の下には、実際に使う記号の数が出ます。「紛らわしい文字を除く」にチェックを入れている間は | を数えません。

使える記号が1文字も残らないとき(欄が空のとき、記号以外の文字だけのとき、| だけを残して紛らわしい文字を除いたとき)は、強度の目安の代わりにその旨を表示し、「生成」は押せません。記号を入れるか、「記号」のチェックを外してください。

「記号」のチェックを外すと欄は隠れますが、入力した内容は残り、チェックを入れ直すと元の内容で戻ります。ページを再読み込みすると32文字に戻ります。

パスフレーズを作る

「生成する形式」で「単語をつなげたパスフレーズ」を選ぶと、文字数・使う文字・使う記号・紛らわしい文字の設定の代わりに、次の設定が出ます。

  1. スライダーで単語数(3〜12)を選びます。最初は6語です
  2. 「区切り」で、単語の間に入れる文字をハイフン(-)・空白・ピリオド(.)・アンダースコア(_)から選びます。最初はハイフンです
  3. 生成数(1〜20)を入力して「生成」を押します

6語・ハイフン区切りで「生成」を押すと、次のようなパスフレーズが表示されます:

emit-charbroil-suction-revision-stream-flashcard

(値は生成のたびにランダムに変わります)

このとき強度の目安は「普通(約77ビット)」と表示されます。

単語は、EFF(電子フロンティア財団)がパスフレーズ用に公開している英単語リスト EFF Long Wordlist(7,776語、CC BY 4.0)から選びます。このうち、ハイフンを含む4語(drop-down、felt-tip、t-shirt、yo-yo)を除いた7,772語を使います。どの区切りを選んでも、パスフレーズを区切りで分けると元の単語に1通りに戻るようにするためです。

  • 単語はすべて英小文字の a〜z だけで、3〜9文字です。日本語やローマ字の単語は使いません
  • 1語ずつ、7,772語の中から偏りなく選びます。同じ単語が2回以上出ることもあります
  • 単語の頭を大文字にしたり、数字や記号を足したりはしません。登録先で大文字・数字・記号が必要なときは、ランダムな文字列を使ってください

単語数、区切り、生成する形式を変えると、表示中のパスフレーズは消えます。「ランダムな文字列」に戻しても、文字数や使う文字などの設定は変える前のまま残っています。

生成のしくみ

  1. チェックを入れた種類ごとに、その種類の文字を1文字ずつ選びます
  2. 残りの文字数は、選んだ種類をすべて合わせた文字の中から1文字ずつ選びます
  3. 最後に全体の並びをシャッフルします。種類ごとに選んだ文字が先頭に固まらないようにするためです

1文字を選ぶときは、乱数を文字の数で割った余りに偏りが出ないよう、偏りの原因になる範囲の乱数を捨てて引き直しています。複数件を生成する場合は、1件ずつ独立に同じ手順を繰り返します。

強度の目安の計算方法

このツールの手順で生成されるパスワードのエントロピー(ビット数)を求め、小数点以下を切り捨てて表示しています。

すべての位置を使える文字の中から自由に選ぶなら、エントロピーは「文字数 × log2(使える文字の数)」です。4種類すべてを使うと文字は94種類なので、1文字あたり約6.55ビット、16文字で約104.87ビットになります。実際には、選んだ種類の文字をそれぞれ最低1文字入れる決まりがあり、その分だけ出てくる文字列が偏るので、値は少し小さくなります。表示しているのは、この減る分を引いた値です。

  • 種類を1つだけ選んだときは、減る分はありません
  • 4種類すべて(94文字)で16文字のときは、約0.37ビット減って約104.50ビットです
  • 文字の少ない種類があると、減る分が大きくなります。記号を ! の1文字だけに絞って17文字にすると、「17 × log2(63)」は約101.61ビットですが、必ず ! が1文字入る分を引くと約99.35ビットになり、「普通」と表示されます

区分は次のとおりです。

  • 60未満: 弱い
  • 60以上100未満: 普通
  • 100以上: 強い

パスフレーズの区分も同じです(下の「パスフレーズの強度」を参照)。

設定ごとの表示は次のようになります。

  • 4種類すべて(94文字): 8文字で約51ビット(弱い)、12文字で約78ビット(普通)、16文字で約104ビット(強い)。10文字以上で「普通」、16文字以上で「強い」
  • 4種類すべてで、記号を !@#$% の5文字に絞った場合(67文字): 16文字で約96ビット(普通)。17文字以上で「強い」
  • 英大文字・英小文字・数字(62文字): 12文字で約71ビット(普通)、16文字で約95ビット(普通)。11文字以上で「普通」、17文字以上で「強い」
  • 英小文字・数字(36文字): 16文字で約82ビット(普通)。12文字以上で「普通」、20文字以上で「強い」
  • 数字のみ(10文字): 8文字で約26ビット(弱い)。19文字以上で「普通」、31文字以上で「強い」

パスフレーズの強度

パスフレーズのエントロピーは「単語数 × log2(7,772)」で、1語あたり約12.92ビットです。単語は1語ずつ独立に選ぶので、文字列のような減る分はありません。区切りは決まった1文字なので、どれを選んでも値は変わりません。単語リストと単語数を知られていても、当てるにはこの分の組み合わせを試す必要がある、という値です。

  • 3語: 約38ビット(弱い)
  • 4語: 約51ビット(弱い)
  • 5語: 約64ビット(普通)
  • 6語: 約77ビット(普通)
  • 7語: 約90ビット(普通)
  • 8語: 約103ビット(強い)
  • 12語: 約155ビット(強い)

5語以上で「普通」、8語以上で「強い」です。

使うときの注意

  • 強度の目安は、文字数と選んだ種類ごとの文字の数(パスフレーズでは単語数と単語リストの語数)だけから計算した値です。パスワードの使い回しや、保存先からの漏えいは考慮していません。
  • コピーしたパスワードは端末のクリップボードに入ります。貼り付けたあとは、別の内容をコピーして上書きしておくと安心です。
  • 処理はすべてブラウザ内で完結し、生成したパスワードは保存されません。ページを再読み込みしたり閉じたりすると取り出せないので、パスワード管理アプリなどに記録してから閉じてください。
  • パスフレーズは、単語の意味がつながらないようにランダムに選んでいます。覚えやすい並びに自分で入れ替えたり、好きな単語に差し替えたりすると、強度の目安より弱くなります。

FAQ

生成したパスワードは安全ですか?

暗号用の乱数(crypto.getRandomValues())を使い、1文字を選ぶたびに候補の文字が偏りなく選ばれるようにしています。生成したパスワードはサーバーに送信されず、保存もされません。

選んだ種類の文字は必ず含まれますか?

はい。チェックを入れた種類の文字が、それぞれ最低1文字入ります。「英大文字・数字・記号を1文字以上」といった登録条件に合わせやすくなります。

「紛らわしい文字」とは何ですか?

0(ゼロ)と O・o(オー)、1(いち)と l(エル)・I(アイ)・|(縦線)の7文字です。除外すると使える文字が減るので、強度の目安も少し下がります。「使う記号」の欄に | が残っていても、チェックを入れている間は使いません。

何文字にすればよいですか?

4種類すべてを使い、「使う記号」が最初の32文字のままで、紛らわしい文字を除かない場合は、16文字以上で「強い」になります。記号を絞ったり紛らわしい文字を除いたりすると必要な文字数が増えることがあるので、強度の目安の表示を見て決めてください。記号が使えないサービスでは、文字数を増やして補ってください。英数字だけなら17文字以上、さらに紛らわしい文字を除くなら18文字以上で「強い」になります。

登録先で使えない記号が含まれる場合は?

「使う記号」の欄から、使えない記号を消してください。使える記号が決まっているサービスでは、欄を空にしてからその記号だけを入力します。記号を減らすと強度の目安が下がるので、「普通」や「弱い」になったら文字数を増やしてください。記号がまったく使えないサービスでは「記号」のチェックを外します。

選んだ記号はすべて含まれますか?

いいえ。必ず入るのは、「使う記号」の欄にある記号のうち最低1文字です。残りの位置は、選んだ種類の文字すべての中から選ぶので、欄にある記号が全部入るとは限りません。欄にない記号が入ることはありません。

文字列とパスフレーズのどちらを使えばよいですか?

パスワード管理アプリに保存してコピーで使うなら、ランダムな文字列が短くて済みます。パソコンへのログインやパスワード管理アプリのマスターパスワードのように、覚えて手で入力するものには、パスフレーズが向いています。同じくらいの強さでも長さは大きく違い、「強い」になる16文字の文字列に対して、8語のパスフレーズはハイフンを含めて平均63文字ほどになります。登録先に文字数の上限があるときは、文字列を使ってください。

パスフレーズに同じ単語が2回出ました

不具合ではありません。1語ずつ7,772語の中から選ぶので、前に出た単語がまた選ばれることがあります。強度の目安は、同じ単語が出る場合も含めて計算しています。気になるときは、もう一度「生成」を押してください。

数字だけの暗証番号も作れますか?

「数字」だけにチェックを入れると、数字だけの文字列を生成できます。文字数は4から選べます。4桁の場合の強度の目安は約13ビットで「弱い」と表示されます。

何件まで生成できますか?

文字列でもパスフレーズでも、一度に最大20件です。範囲外の値や空欄で生成した場合は、1〜20の範囲に丸めた件数を生成し、入力欄にもその件数を表示します。

種別
ユーティリティ
カテゴリ
開発者向け
タグ
password
passphrase
generator
security
random
  • TOTP生成ツール(ワンタイムパスワード)

    Base32の秘密鍵から、2段階認証で使う6桁のワンタイムパスワード(TOTP)をブラウザ内で計算。前後のコードとの照合、SHA-256・8桁などの設定、otpauth:// URIの読み込みと作成、認証アプリで読み取るQRコードの表示に対応。

    ユーティリティ開発者向けtotpotp2faauthenticatorsecuritygeneratorqr
  • パスワード強度チェッカー

    入力したパスワードの強さを、よく使われるパスワード・単語・キーボードの並び・日付などの見つけやすさから判定。破られるまでの時間の目安、弱い部分、NISTと総務省の目安との照らし合わせも。日本の名字・名前のローマ字、和暦、JIS配列にも対応し、送信はしません。

    ユーティリティ開発者向けpasswordsecuritystrengthcheckerzxcvbn
  • 乱数生成ツール(ランダムな数字)

    最小値と最大値を決めて、その範囲の整数をランダムに生成します。1〜1000個をまとめて出せて、重複なしの抽選、除外する数の指定、サイコロ、並び替え、合計の表示に対応。

    ユーティリティ開発者向けrandomnumbergeneratordicelotterybingo