This page is Japanese code S-JIS
パスワード・ジェネレータ
パスワードを生成します。
というか、ランダムな文字列を生成します。
COM 版は、ここのメソッドの一つにしました。
2001/10/xx アルゴリズムを修正
2022/01/14 セキュアな乱数版はこちら
仕組み
ソースみてちょ
基本は、文字コードに割り当てた乱数を作り、一つずつを "%" + 数字(16進数)に変換して、unescape() 関数で文字にしているだけ。
- CrePas()
- PasGene() 関数を汎用的にするためのラッピングの関数
- PasGene(min,max,snu,sal,sas,ssy,chk)
- 種々のり初期化、入力チェックを行い、min から max の間の乱数を生成し、PasGeneMain() 関数を呼び出す
本プログラムの親関数と言える。
本プログラムでの乱数は、PasGeneMain() の Count 引数(これがパスワードの文字数となる)に引き継がれる。
なにがしかのエラーの場合空白を返す
(例えば、chk=1 なのに、文字種以下の文字数が指定されているなど)
- min : パスワード文字列の最小文字数
- max : パスワード文字列の最大文字数
- snu : 数字を含む => 1
- sal : 英大文字を含む => 1
- sas : 英小文字を含む => 1
- ssy : 記号を含む => 1
- chk : 指定した文字種を必ず含 => 1
min,max が整数でない場合、空の文字列を返す
- PasGeneMain(counts,snu,sal,sas,ssy,types)
- counts 引数に指定された回数だけ、PasFunc() 関数を呼び出す。
types に、指定した文字種を全て含める。がチェックされていた場合、生成された文字列に含まれている文字種を数え、満たしていない場合、自分自身を呼び出す。(再帰的)
スタック・オーバー・フロー対策はしていない。
- counts : 生成する文字数
- snu : 数字を含む => 1
- sal : 英大文字を含む => 1
- sas : 英小文字を含む => 1
- ssy : 記号を含む => 1
- types : 指定した文字種を含めるかどうか
(types = 0 の場合、指定した文字種を必ず含めなくてもいい)
- PasFunc(nu,al,as)
- 文字コードに割り当てた乱数を生成し、"%" + 数字(16進数) という文字列を生成
- nu : 数字を含む => 1
- al : 英大文字を含む => 1
- as : 英小文字を含む => 1
- sy : 記号を含む => 1
どれかが、1 でないと、空の文字列を返す
再利用について
基本的には、PasFunc() 関数と、PasGeneMain() 関数と、PasGene() 関数をコピーして、上述の仕様通りに、PasGene() 関数を呼び出せばいい。
ただし、整数判断で、moji_chks() 関数も使用しているので、コピーする必要がある。
これは、このソースにもあるし、ここに説明が。
ダイスウェア・パスフレーズというものもある。
その COM コンポーネントは、ここ
私のパスワードメモは、ここ
動作確認ブラウザ
- Netscape Navigator 3.04en for MS-Windows2000
- OK
- Netscape Communicator 4.6jp for MS-Windows9x
- ?
- Netscape Communicator 4.72jp for MS-WindowsNT4.0
- OK
- Netscape Communicator 4.75jp for MS-Windows2000
- OK
- Netscape Communicator 4.75jp for RedHat Linux7
- OK
- Netscape Communicator 4.79Jp for RedHat Linux7.3
- OK
- Netscape 6jp for MS-Windows2000
- OK
- Netscape 6.1 for MacOS9.2.2 (J1-9.2.2 MacOSROM J1-8.8.1)
- OK
- Internet Explorer 5.0(2022) for MacOS9.2.2 (J1-9.2.2 MacOSROM J1-8.8.1)
- OK
- Internet Explorer 4.72.3110.1 SP1 for MS-Windows9x
- ?
- Internet Explorer 4.72.3110.8 SP1 for MS-WindowsNT4.0
- OK
- Internet Explorer 5.00.2314.1003 for MS-WindowsNT4.0
- OK
- Internet Explorer 5.00.2919.6307 for MS-WindowsNT4.0
- OK
- Internet Explorer 5.00.2920.0000 for MS-Windows9x
- OK
- Internet Explorer 5.00.2920.0000 for MS-Windows2000
- OK
- Netscape Communicator 4.7jp for MacOS9.04
- OK
- Netscape 6.2.1jp for MS-Windows2000
- OK
- Netscape 6.2.3jp for MS-Windows2000
- OK
- Opera (free) 5.12 build932 for MS-Windows2000
- OK
- Mozilla 0.9.9 for RedHat Linux7.3
- OK
セキュアな乱数を使ったバージョン
こちら
Blazor/WebAssemblyを使ったバージョン
こちら
mail to active@window.goukaku.com