パスワード・ジェネレータ (in:なし、out:文字列型)

指定した文字列の組み合わせからパスワードを生成し、データ項目に格納します。情報システムの「利用者アカウントを新規発行」などに利用できます。

    A. 候補文字をセットしてください (例 "acfghjkmnrsuvwxyzACFGHJKMNRSUVWXYZ")単一行記述必須
    a. カテゴリAの文字の登場数をセットしてください (例 "4")単一行記述必須
    B. 候補文字をセットしてください (例 "abcdefghjkmnpqrstuvwxyz")単一行記述
    b. カテゴリBの文字の登場数をセットしてください (例 "4")単一行記述
    C. 候補文字をセットしてください (例 "ABCDEFGHJKLMNPQRSTUVWXYZ")単一行記述
    c. カテゴリCの文字の登場数をセットしてください (例 "4")単一行記述
    D. 候補文字をセットしてください (例 "#$%&+-")単一行記述
    d. カテゴリDの文字の登場数をセットしてください (例 "4")単一行記述
    E. 生成パスワードが格納される文字列型データを選択してください(更新)データ項目選択文字列型必須
    -設定変数名設定ラベル
    Aconf_PassSetA候補文字をセットしてください (例 "acfghjkmnrsuvwxyzACFGHJKMNRSUVWXYZ")
    aconf_PassNumAカテゴリAの文字の登場数をセットしてください (例 "4")
    Bconf_PassSetB候補文字をセットしてください (例 "abcdefghjkmnpqrstuvwxyz")
    bconf_PassNumBカテゴリBの文字の登場数をセットしてください (例 "4")
    Cconf_PassSetC候補文字をセットしてください (例 "ABCDEFGHJKLMNPQRSTUVWXYZ")
    cconf_PassNumCカテゴリCの文字の登場数をセットしてください (例 "4")
    Dconf_PassSetD候補文字をセットしてください (例 "#$%&+-")
    dconf_PassNumDカテゴリDの文字の登場数をセットしてください (例 "4")
    Econf_DataIdE生成パスワードが格納される文字列型データを選択してください(更新)
    // Random Password Generator (ver. 20160909)
    // (c) 2016, Questetra, Inc. (the MIT License)
    
    //// == 工程コンフィグの参照 / Config Retrieving ==
    var passSetA = configs.get( "conf_PassSetA" ) + "";
    var passNumA = configs.get( "conf_PassNumA" ) - 0 ;
    var passSetB = configs.get( "conf_PassSetB" ) + "";
    var passNumB = configs.get( "conf_PassNumB" ) - 0 ;
    var passSetC = configs.get( "conf_PassSetC" ) + "";
    var passNumC = configs.get( "conf_PassNumC" ) - 0 ;
    var passSetD = configs.get( "conf_PassSetD" ) + "";
    var passNumD = configs.get( "conf_PassNumD" ) - 0 ;
    var dataIdE = configs.get( "conf_DataIdE" );
    
    //// == ワークフローデータの参照 / Data Retrieving ==
    // none
    
    //// == 演算 / Calculating ==
    var myPassword = "";
    for(var i=0; i < passNumA; i++){
      myPassword += passSetA.charAt( Math.floor( Math.random() * passSetA.length ) );
    }
    for(var i=0; i < passNumB; i++){
      myPassword += passSetB.charAt( Math.floor( Math.random() * passSetB.length ) );
    }
    for(var i=0; i < passNumC; i++){
      myPassword += passSetC.charAt( Math.floor( Math.random() * passSetC.length ) );
    }
    for(var i=0; i < passNumD; i++){
      myPassword += passSetD.charAt( Math.floor( Math.random() * passSetD.length ) );
    }
    
    // shuffle (Fisher-Yates)
    var tmpArray = myPassword.split("");
    var j = tmpArray.length;
    while ( j > 1 ) { 
      var k = Math.floor(Math.random() * j );
      j = j - 1;
      if (j == k) continue;
      var tmp = tmpArray[j];
      tmpArray[j] = tmpArray[k];
      tmpArray[k] = tmp;
    } 
    
    //// == ワークフローデータへの代入 / Data Updating ==
    retVal.put( dataIdE, tmpArray.join("") );
    
    なしAからa回、Bからb回、Cからc回、Dからd回の文字選択が行われ、それらのシャッフル文字列が、Eで選択したデータ項目に格納されます小文字のエル “l” や数字のイチ “1” などの紛らわしい文字を出現させたくない場合、候補文字から排除します。また、記号を必ず混合させたい場合、記号文字だけのカテゴリを作り、その登場回数を1以上に設定します