2012年12月4日火曜日

[日記]パスワード生成ツールを作ってみます

パスワード生成ツールを作ります。
自分用なので複雑な機能はいらないです。ボタンを押したら8文字のランダムな文字列が出ればそれでいいです。

文字種

使える文字種はこのくらいでいきます。

大文字(A~Z)
○小文字(a~z)
○数字(0~9)
記号(!#$%&@)

文字列変数に全文字を格納

パスワードに使っていい文字を並べて文字列を作ります。
"ABCD・・・Zabcd・・・z012・・・9・・・"
です。

var svailable_string;

  // Large Character
  available_string = available_string + "ABCDEFGHIJKLMNOPQRSTUVWXYZ"

  // Small Character
  available_string = available_string + "abcdefghijklmnopqrstuvwxyz"

  // Number
  available_string = available_string + "0123456789"

  // Other
  available_string = available_string + "!#$%&@"


パスワードの長さ分の繰り返し

生成する文字列長の分繰り返し処理を行う。

  var pass_length = 8;

  // Loop
  for(int i =0; i<pass_length; i++){
    ・・・
  }


文字列処理

パスワードに使っていい文字を並べて文字列を作ります。

文字列の長さを取り出すには available_string.length。
0~x までのランダムな数字は Math.floor(Math.random()*x)。
string の x 番目の1文字を取得するには string.substring(x - 1, x)。
→ 3番目の1文字だと string.substring(2,3)。


スクリプト

これらをボタンを押したときの処理に組み込むとこのようになります。
実際にこのスクリプトを使っているページはこちら
パスワード生成.html <html>
<head>
<title>パスワード生成</title>
</head>
<body>
<script type="text/javascript"><!--
function Get_Password() {
  var available_string = "";
  var password_string = "";
  var random_number;
  var i;

  var pass_length = 8;

  // Large Character
  available_string = available_string + "ABCDEFGHIJKLMNOPQRSTUVWXYZ";

  // Small Character
  available_string = available_string + "abcdefghijklmnopqrstuvwxyz";

  // Number
  available_string = available_string + "0123456789";

  // Other
  available_string = available_string + "!#$%&@";

  // Loop
  for(i=0; i<pass_length; i++){
    random_number = Math.floor(Math.random() * available_string.length);
    password_string = password_string + available_string.substring(random_number,random_number+1);
  }

  document.getElementById("data1").innerHTML = password_string;

}
// --></script>

<input type="button" value="パスワード生成" onclick="Get_Password();">
生成されたパスワード: <span id="data1">***</span><br />

</form>
</body>
</html>


日記の一覧に戻る

0 件のコメント:

コメントを投稿