PIN 生成
任意の数字長のランダムPINコードを生成し、ユニークなバッチオプションを用意します。PINジェネレーターはcrypto.getRandomValuesを使用し、すべてのドローをブラウザに保持します。
crypto.getRandomValues() を使用すると、ブラウザでランダムな結果が生成されます。サーバーには何も送信されません。
—
—
プレイヤー 1
8000
プレイヤー2
8000
0:00
—
算術を表示
PINジェネレーターは、1から12までの任意の長さのランダムな数字のみのPINコードを生成し、1回のバッチで複数のユニークなコードを生成するオプションがあります。数字の長さと生成するPIN数を設定すると、ブラウザ内の暗号学的に公平なランダムソースを使ってゼロパッドの数字文字列を返します。
PINは個人識別番号(Personal Idification Number)の略で、ロックコード、銀行カードの認証、デバイスのパスコードなど、低摩擦の認証に使用される固定長の数字の列です。このツールはテスト、デモ、教育目的でサンプルPINを生成します。
ランダムなPINを生成します
桁長を1から12まで選び、1回の一括で最大1、000まで作成するPIN文字列の数を選びます。各PINは、その長さの可能な値の全空間から均一に引出された数字文字列です。例えば、4桁のPINは10、000の可能な組み合わせ(0000から9999)から引かれます。
possible PINs = 10^digits
4桁のPINの場合、すなわち10⁴ = 10,000の可能なコードです。6桁のPINの場合、10⁶ = 1、000、000のコード、つまり2桁余分に100倍の組み合わせとなります。
結果の先頭にゼロを出し続けてください
生成された各PINは要求された長さに対してゼロパディングされるため、4桁のPINリクエストに対してランダムに抽出された値(例えば42)は0042として表示され、4文字すべてが保持されます。
これは重要な点です。なぜなら、PINは通常の数値で解釈される数字ではなく、固定長のコードだからです。先頭のゼロを省略するとコードが短縮され、その意味が変わります。
生成されたPINをスプレッドシートにエクスポートする際のよくある落とし穴は、数字のように見える文字列を数字として解釈し、先頭のゼロを静かに削除してしまうことです。生成されたPIN値を数値セル形式に変換するのではなくテキストとして保持することで、コードの破損を防ぎます。
ユニークなPINの一括を生成します
「Yes」に一意設定することで、同じ生成バッチ内でPINstringの繰り返しがなくなります。要求された数が選択した数字長のPIN総数を超える場合、過剰な一意要求は重複を無言に生成するのではなくエラーを返します。
例としては、5 ユニークな4 桁のPINを要求すると、10、000の可能な組み合わせから抽出され、そのサイズの一意なバッチを快適にサポートできます。15、000、4の一意なPINを要求すると、10、000の可能な組み合わせ以上のものを要求すると却下されます。なぜなら、一意の4桁のPINの一括数は10、000コードを超えることはできないからです。
一般的な慣習に合致する長さを選ぶ
4桁と6桁のPINが現実世界で最も一般的に使われ、それぞれ典型的な銀行カードのPINや多くのモバイルデバイスのアンロックコードに一致します。短いPINは覚えるのが速いですが、力技で推測しやすいです。長いPINは記憶の難しさを犠牲にして、組み合わせの幅がはるかに広くなります。
| 数字 | 可能な組み合わせ |
|---|---|
| 4 | 10,000 |
| 6 | 1,000,000 |
| 8 | 100,000,000 |
数字が増えるたびにコードの空間が10倍になるため、長さがわずかに増えるだけでも、力任せだけで特定のコードを推測する難しさが大きく上がるのです。
生成方法が公平かどうかを確認してください
PINの数字は、サイトの乱数ツール全体で使われているのと同じ、暗号化的に安全なランダムソースで作成されます。これは、より単純で厳密さの低い疑似乱数関数とは異なります。リジェクションサンプリングは、特定の数字や組み合わせが他よりもわずかに現れやすくなる微妙なバイアスを防ぎます。
生成されたPINを責任を持って使用してください
ここで生成されるPINコードは、デモンストレーション、テスト、ローカル開発の目的で、テストデータベースの入力やPIN形の入力を期待するUIフローの手順を歩くなどを目的としています。
これらは、共有画面や信頼できないデバイスから直接、ライブアカウントのリカバリーフローや実際の金融PIN設定、その他の本番環境のセキュリティコンテキストに入力されることを意図していません。
数字の長さを並べて比較してください
8桁のPINは、100、000、000の組み合わせを提供でき、4桁のPINの10、000の組み合わせの1万倍に増加します。このギャップは、デバイスのパスコードとして一般的な数値向上である4から6へのわずかな増加でも、一致を見つけるまでに力技で推測する回数を大幅に増やす理由を示しています。
よくある質問
ランダムなPINコードをどうやって生成するのですか?
桁の長さとカウントを選び、それから生成します。ツールはその長さの可能な組み合わせの全空間から各PINを均一に抽出し、必要に応じて先頭のゼロを付けます。
4数字のPINにはいくつ可能な組み合わせが存在するのでしょうか?
10,000。これは、4の数字PINは0000から9999までの任意の値を含みます。
なぜ生成されたPINがゼロで始まるのですか?
先頭のゼロは固定長のPINコードの一部であり、生成された文字列に保持されます。なぜなら、PINは数字列を表し、先頭のゼロが省略される数値ではないためです。
複数のユニークなPINを同時に生成できますか?
はい。Yesに固有の設定により、選択した数字長で最大の組み合わせ数まで、単一の生成バッチ内でPIN文字列の繰り返しがなくなります。
その長さで可能なより多くのユニークなPINを要求したらどうなりますか?
ジェネレーターは重複PINを生成する代わりにエラーを返します。なぜなら、一意のバッチは選択した数字長の合計の組み合わせ数を超えてはならないからです。
実際の銀行口座で生成されたPINを使うのは安全ですか?
ここで生成されるPINはテストおよびデモ目的で作成されています。実際の金融PINを設定する際は、一般的なオンラインツールではなく、該当銀行やサービスの特定のセキュリティガイダンスに従うべきです。
生成されるPINはどれくらいランダムですか?
PINはブラウザに組み込まれた暗号的に安全なランダムソースを用いて作成され、バイアスを避けるためにリジェクションサンプリングが適用されるため、単純な擬似乱数関数よりも強いランダム性保証を提供します。
まとめ
ランダムPINを生成するとは、数字の長さとカウントを選び、その長さの可能な組み合わせの全空間から均一にゼロパッドの数字文字列を抽出することを意味します。10、000の選択肢はNUM2⟧桁のピン、または1、000、000は6桁のピンです。
一意なバッチ生成により、選択した長さで可能な限り最大限の重複コードを避け、すべてのPINはブラウザにローカルに留まる暗号的に公正なランダムソースを使って生成されます。