忍者ブログ

からすまる日誌 JavaScript

実践2(4) パスワードの生成

×

[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。

実践2(4) パスワードの生成

サクラエディタ:
行選択してctrl押しながら別の行にドラッグするとコピーできる 


大文字、小文字、数字で8文字のパスワード
 
ということは、混ぜたものがあるわけだから、
1.何がチェックされたか
2.チェックされたもののなかから、ランダムで
2-1 まず何の配列からもってくるか(大・小・数字・記号)
2-2 配列の何番目からもってくるか
3.たす
という流れかな?
 
1回出たからといって、もう一度使っていけないわけではないのが
トランプのカードとは違うところ。
 
→まず配列の用意の仕方をまちがえた。
全部の(小文字・大文字・数字・記号を)含んだ超長い配列を用意すべき(じゃないと複雑になりすぎる)
つまり2-1の仮定からおかしかった。
 
おおざっぱな枠はこうなる
 
 
 var moji = ['a','b','c','d','e',//配列0から4までは小文字
       'A','B','C','D','E',//配列5-9が大文字
       '0','1','2','3','4',//配列10-14が数字
       '!','#','$','&','?'];//配列15-20が記号。testで短め
 $('#btn').on.('click',function(){
  var passStr ="";//初期化
  for (i=0; i<8; i++){//8回回す
    
   passStr += moji[ran];
  }
 
 }

ランダムで文字を8回足しましょう
こういう形になる
  
--->pass.js(注意)
 
 $(function(){
 console.log('foo');
 
 var moji = ['a','b','c','d','e',//配列0から4までは小文字
       'A','B','C','D','E',//配列5-9が大文字
       '0','1','2','3','4',//配列10-14が数字
       '!','#','$','&','?'];//配列15-20が記号。testで短め
 $('#btn').on('click',function(){
  var passStr ="";//初期化
  for (i=0; i<8; i++){//8回回す
   var ran=Math.floor(Math.random()*moji.length);   
   passStr += moji[ran];
  }
 $('#pass').text(passStr);
 });
});
 

ただ、これだと
①拡張性に弱い
②そのうえ小文字だけとかどーやって取り出すんだとか大変複雑になる
 
というわけで配列じゃなくて普通に「何文字目を取り出す」という形を使えば、単にながい文字列をもっていればいいということになる。
 
 var moji1 = "abcde";//testで短めにしてある。本来26文字
 var moji2 = "ABCDE";
 var moji3 = "12345";
 var moji4 = "!#$&?";
 
こういう文字列からランダムに取り出せばいいということになる
 
チェックボックスのon/offによって、この抽出元の文字列自体を足せばいいということか。ああなるほど。
つまりこうなる
 
--->pass.js
 
$(function(){
 console.log('foo');
 
 var moji1 = "abcde";//testで短め
 var moji2 = "ABCDE";
 var moji3 = "12345";
 var moji4 = "!#$&?";
 
 var moji = moji1+moji2+moji3+moji4;
 console.log('moji is '+moji);
 
 $('#btn').on('click',function(){
  var passStr ="";//初期化すると同時に、これが文字列であると示す
  for (i=0; i<8; i++){//8回回す
   var ran=Math.floor(Math.random()*moji.length);
   passStr += moji.charAt(ran);//何文字目か
   
  }
 $('#pass').text(passStr);
 });
});
 

チェックボックスにチェックがはいっているかどうかはどうする?
 
 
PR

コメント

ただいまコメントを受けつけておりません。

ブログ内検索

P R