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.

Support this website.

This library has been a free commmunity resource for FileMaker users and developers for 20 years. It receives no funding and has no advertisements. If it has helped you out, I'd really appreciate it if you could contribute whatever you think it's worth: