<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
		<id>https://mailnest.com/dbawiki/index.php?action=history&amp;feed=atom&amp;title=Random_password_generator</id>
		<title>Random password generator - Revision history</title>
		<link rel="self" type="application/atom+xml" href="https://mailnest.com/dbawiki/index.php?action=history&amp;feed=atom&amp;title=Random_password_generator"/>
		<link rel="alternate" type="text/html" href="https://mailnest.com/dbawiki/index.php?title=Random_password_generator&amp;action=history"/>
		<updated>2026-04-05T08:53:15Z</updated>
		<subtitle>Revision history for this page on the wiki</subtitle>
		<generator>MediaWiki 1.29.3</generator>

	<entry>
		<id>https://mailnest.com/dbawiki/index.php?title=Random_password_generator&amp;diff=515&amp;oldid=prev</id>
		<title>Stuart: Created page with &quot;&lt;pre&gt; #!/usr/bin/perl # ============================================================================== # Name         : random_password.pl # Description  : Generates a random ...&quot;</title>
		<link rel="alternate" type="text/html" href="https://mailnest.com/dbawiki/index.php?title=Random_password_generator&amp;diff=515&amp;oldid=prev"/>
				<updated>2013-04-16T11:31:40Z</updated>
		
		<summary type="html">&lt;p&gt;Created page with &amp;quot;&amp;lt;pre&amp;gt; #!/usr/bin/perl # ============================================================================== # Name         : random_password.pl # Description  : Generates a random ...&amp;quot;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/usr/bin/perl&lt;br /&gt;
# ==============================================================================&lt;br /&gt;
# Name         : random_password.pl&lt;br /&gt;
# Description  : Generates a random password according to specific rules&lt;br /&gt;
#&lt;br /&gt;
# Notes        : none&lt;br /&gt;
#&lt;br /&gt;
# Modification History&lt;br /&gt;
# ====================&lt;br /&gt;
# When      Who               What&lt;br /&gt;
# ========= ================= ==================================================&lt;br /&gt;
# 16-APR-13 Stuart Barkley    Created&lt;br /&gt;
# ==============================================================================&lt;br /&gt;
&lt;br /&gt;
$DEBUG=0;&lt;br /&gt;
my $password=&amp;#039;&amp;#039;;&lt;br /&gt;
my $RULES_PASSED=0;&lt;br /&gt;
&lt;br /&gt;
sub debug {&lt;br /&gt;
    my $msg = $_[0];&lt;br /&gt;
    $DEBUG &amp;amp;&amp;amp; print $msg;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
# -------------------&lt;br /&gt;
# Generate a password&lt;br /&gt;
# -------------------&lt;br /&gt;
sub generate_password {&lt;br /&gt;
    my ($pwlen) = @_;&lt;br /&gt;
    return `head /dev/urandom | uuencode -m - | sed -n 2p | cut -c1-\${pwlen:-12};`&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
while (! $RULES_PASSED) {&lt;br /&gt;
&lt;br /&gt;
    $password=generate_password;&lt;br /&gt;
    chomp($password);&lt;br /&gt;
&lt;br /&gt;
    # --------------------&lt;br /&gt;
    # Apply business rules&lt;br /&gt;
    # --------------------&lt;br /&gt;
&lt;br /&gt;
    #1. Has to start and end with an alphabetic character&lt;br /&gt;
    if ($password !~ m/^[A-z].*[A-z]$/) {&lt;br /&gt;
       debug &amp;quot;$password failed rule 1\n&amp;quot;;&lt;br /&gt;
       next;&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
    #2. Has to contain at least 2 upper case characters&lt;br /&gt;
    if ($password !~ m/[A-Z].*[A-Z]/) {&lt;br /&gt;
       debug &amp;quot;$password failed rule 2\n&amp;quot;;&lt;br /&gt;
       next;&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    #3. Has to contain at least 2 lower case characters&lt;br /&gt;
    if ($password !~ m/[a-z].*[a-z]/) {&lt;br /&gt;
       debug &amp;quot;$password failed rule 3\n&amp;quot;;&lt;br /&gt;
       next;&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    #4. Has to contain at least 2 digits&lt;br /&gt;
    if ($password !~ m/\d.*\d/) {&lt;br /&gt;
       debug &amp;quot;$password failed rule 4\n&amp;quot;;&lt;br /&gt;
       next;&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    #5. Has to contain between 10 and 12 characters&lt;br /&gt;
    if ($password !~ m/.{10,12}/) {&lt;br /&gt;
       debug &amp;quot;$password failed rule 5\n&amp;quot;;&lt;br /&gt;
       next;&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    # -----------------&lt;br /&gt;
    # Apply other rules&lt;br /&gt;
    # -----------------&lt;br /&gt;
&lt;br /&gt;
    #6. Has to contain only printable characters&lt;br /&gt;
    if ($password !~ m/[ -~]/) {&lt;br /&gt;
       debug &amp;quot;$password failed rule 6\n&amp;quot;;&lt;br /&gt;
       next;&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    #7. Cannot contain certain special characters&lt;br /&gt;
    if ($password =~ m|[\/\&amp;amp;\*\$]|) {&lt;br /&gt;
       debug &amp;quot;$password failed rule 7\n&amp;quot;;&lt;br /&gt;
       next;&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    $RULES_PASSED=1;&lt;br /&gt;
&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
print $password;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Stuart</name></author>	</entry>

	</feed>