Brian Dunning's FileMaker Custom Functions

PasswordCreator ( HowManyChars ; Parameter ; String )

Calculate any lenght of random caracter string with the chars type you want

  Average rating: 4.4 (38 votes) Log in to vote

Martin D. Brunner   Martin D. Brunner
mdb
http://www.mdb.bz

Share on Facebook Share on Twitter

  Sample input:
PasswordCreator ( 8 ; 7; "")
  Sample output:
vG3?fw7&

  Function definition: (Copy & paste into FileMaker's Edit Custom Function window)

PasswordCreator ( HowManyChars ; Parameter ; String )

Recursive Custom Function programmed by Martin D. Brunner - 18. August 2008
mdb@gmx.net
--------------------------------

Calculate any lenght of random caracter string with the chars type you want. This function is best used either in scripts or auto calcs.

HowManyChars:
Defines how many characters the string shall contain (a number you define)

Parameter:
Defines what kind of characters are used to calculate the string.
1 = lower case
2 = upper case
3 = numeric
4 = special chars
5 = lower & upper case
6 = Numeric & lower & uper case
7 = lower & upper case & numeric & special chars
8 = numeric & lower case
9 = upper case & numeric
10 = numeric & special chars

String:
The String is the returned value. Set it in the beginning always to "" or you can also specify a prefix as i.e. "MA-" or the like.

 

Comments

Doug Larsen   Doug Larsen, Minneapolis
May 18, 2011
This is a useful function but would be really nice if the password it generated had at least one character from each of the parameter categories.

Many systems REQUIRE a lowercase letter, an uppercase letter, a number, and a special character. This function is capable of creating a password to meet those requirements but there is no guarantee that it actually will because the character selection is purely random. It could for instance create a string of all lowercase letters even though parameter 7 was chosen.
 
HazMatt   HazMatt, Blaine, MN, USA
Jun 13, 2013
I rewrote this to be:

// PasswordCreator ( PasswordLength ; CharsLowerCase ; CharsUpperCase ; CharsNumeric ; CharsSpecial ; String )

Let(

[
Counter = PasswordLength;
xSet = CharsLowerCase & CharsUpperCase & CharsNumeric & CharsSpecial;
xLen= Length(xSet)
];

If(
Counter > 0; Let(String = String & Middle(xSet; Int(Random * xLen) + 1; 1); String) & CreateRandomPassword(Counter - 1; CharsLowerCase; CharsUpperCase; CharsNumeric; CharsSpecial; String);
String
)

)

I then specified the characters in a script with a loop that calls this function, which checks the actual generated password for the required characters. In my testing, a 4 digit password requiring at least 1 lower case, upper case, numeric and special character still ran very fast, even when it had to try 30+ times. This approach will guarantee that a generated password will meet the specifications that you want.
 

Log in to post comments.

 

Note: these functions are not guaranteed or supported by BrianDunning.com. Please contact the individual developer with any questions or problems.

Under construction. Email me your wish list for improvements.