Skip to content

Instantly share code, notes, and snippets.

@stevewithington
Created July 2, 2020 16:58
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save stevewithington/3ae4de10efa65382a85ba1136eab78b3 to your computer and use it in GitHub Desktop.
Save stevewithington/3ae4de10efa65382a85ba1136eab78b3 to your computer and use it in GitHub Desktop.
ColdFusion / CFML Random Password Method / Function
<cfscript>
public string function getRandomPassword(numeric length=10, string charSet='special') {
var charLower = 'a|c|e|g|i|k|m|o|q|s|u|w|y|b|d|f|h|j|l|n|p|r|t|v|x|z'
var charUpper = 'A|C|E|G|I|K|M|O|Q|S|U|W|Y|B|D|F|H|J|L|N|P|R|T|V|X|Z';
var charNumbers = '0|2|4|6|8|9|7|5|3|1';
var charSpecial = "@|!|$|%|^|&|+|=|,'";
var charList = '';
var thisChar = '';
var randomPassword = '';
switch(arguments.charSet) {
case 'alpha':
charList = charLower & '|' & charUpper;
break;
case 'alphanumeric':
charList = charLower & '|' & charNumbers & '|' & charUpper;
break;
case 'numeric':
charList = charNumbers;
break;
case 'special':
charList = charUpper & '|' & charSpecial & '|' & charNumbers & '|' & charLower;
break;
default:
throw(
message ='Invalid `charSet` argument',
detail ='Valid values of `charSet` are `alpha`, `alphanumeric`, `numeric`, and `special`'
);
}
var charArray = ListToArray(charList, '|');
for (var i=1; i <= arguments.length; i++) {
var thisNum = RandRange(1, charArray.len());
randomPassword &= charArray[thisNum];
}
return randomPassword;
}
</cfscript>
<cfoutput>
<h1>Example Usage</h1>
<p><code><b>getRandomPassword(length=10, charSet='special')</b> =&gt; #getRandomPassword(length=10, charSet='special')#</code><br>
<small><em>Note: This is the default.</em></small></p>
<hr>
<p><code><b>getRandomPassword()</b> =&gt; #getRandomPassword()#</code></p>
<hr>
<p><code><b>getRandomPassword(length=6)</b> =&gt; #getRandomPassword(length=6)#</code></p>
<hr>
<p><code><b>getRandomPassword(length=20, charSet='alpha')</b> =&gt; #getRandomPassword(length=20, charSet='alpha')#</code></p>
<hr>
<p><code><b>getRandomPassword(charSet='alphanumeric')</b> =&gt; #getRandomPassword(charSet='alphanumeric')#</code></p>
<hr>
<p><code><b>getRandomPassword(charSet='numeric')</b> =&gt; #getRandomPassword(charSet='numeric')#</code></p>
</cfoutput>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment