http://FMPro.info  FileMaker Pro 関連総合ポータルサイト

createPass 関数

カテゴリー : その他
計算結果のデータタイプ : テキスト
対応FileMakerバージョン : 対応 7  対応 8  対応 8.5  対応 9  対応 10  対応 11  未対応 12  未対応 13  未対応 14  未対応 15
作者 : 給前悟郎 株式会社ジェネコム

概要

パスワードを自動生成できます。パスワードに使う文字種、文字数は任意に指定できます

構文

createPass ( txt ; num ; pass )

引数

引数名タイプ備考
txtテキストパスワードに使う文字種0123456789ABCDEFGHIJKLMNOPQRSTU
num数字生成するパスワードの文字数8
passテキスト第三引数は常に""にして下さい。 

別のウィンドウで、引数の値を変更してテストすることが出来ます

createPass ( "0123456789ABCDEFGHIJKLMNOPQRSTU" ; 8 ; "" )

結果

9HEIQCRJ

Let (
[
    // 生成されたパスワード
    passwd = pass ;
    // ランダム値
    key = Right ( Int ( Random * 100 ) ; 2 )
] ;

    Case (
        // 初回のみのチェック
        Length ( pass ) < 1 and Length ( txt ) < num ;
            "エラー";

        // 生成したパスワードが指定した長さになっていない場合は再帰呼び出し
        Length ( passwd ) < num and key Length ( txt ) ;
            
createPass ( Substitute ( txt ; Middle ( txt ; key ; 1 ) ; "" ) ; num ; passwd & Middle ( txt ; key; 1 ) ) ;

        // ランダム値がパスワードの元となる文字列の長さより大きくなった場合はもう一度
        Length ( passwd ) < num and key  > Length ( txt ) ;
            
createPass ( txt ; num ; passwd ) ;

        // パスワードが指定の長さになったら値を返して終わり
        Length ( passwd ) = num ;
            passwd
    )
)

エンコードは Unicode (UTF-8)、改行タイプは LF (Unix) 形式のテキストとして保存します。
テキストエディタで正常に開かない場合は、エンコードを指定してファイルを開くようにしてください。

詳細説明

下記の点に注意して下さい。
・パスワードの文字列は同じ文字が重ならないようにしています。そのため第一引数の文字数は、第二引数でセットするパスワードの文字数以上である必要があります
・第二引数で与えるパスワードの文字数は「バイト数」では無いです。

この関数が使用する他のカスタム関数

この関数を使用する他のカスタム関数

注意:ここで紹介されているカスタム関数をご自分のシステムに組み込んだ場合に発生した問題についてはFMPro.infoは責任を負いません。

Copyright © 2004-2009 FMPro.info All Rights Reserved.