VisorSoft Guest
|
Posted: Fri Nov 22, 2002 9:33 pm Post subject: .htpasswd Encryption |
|
|
Hello,
Does anyone know how to encrypt .htpasswd passwords with
Visual DialogScript?
I found some Perl source code to do this, but I was wondering if it is
possible to do it in VDS.
The perl script can be found below:
| http://www.croesusdesign.com/pass.html wrote: | #!/usr/local/bin/perl -T
#you may need to adjust the above line (#!/usr/bin/perl is common)
#-----------------------------------------------------------------------------
# EZPass v1.1 (c) 2001-2002 Croesus Design and Promotion
# Rev 11.25.2001-2002
# Developed by Jason C. Fleming
# This program is distributed as open source WITHOUT ANY WARRANTY; without even
# the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
# IN NO EVENT WILL CROESUS DESIGN, THE AUTHOR OF THIS PRODUCT OR ANY
# REPRESENTATIVE OF CROESUS DESIGN BE LIABLE FOR LOSS OF DATA OR FOR
# DIRECT, SPECIAL, INCIDENTAL, CONSEQUENTIAL (INCLUDING LOST PROFIT),
# OR OTHER DAMAGE, WHETHER BASED IN CONTRACT, TORT, OR OTHERWISE.
#-----------------------------------------------------------------------------
$| = 1; #flush output
read (STDIN, $buffer, $ENV{'CONTENT_LENGTH'}); #get form input
@namevalues = split(/&/, $buffer);
foreach $namevalue (@namevalues) {
($name, $value) = split(/=/, $namevalue);
$name =~ tr/+/ /;
$value =~ tr/+/ /;
$name =~ s/%(..)/pack("C", hex($1))/eg;
$value =~ s/%(..)/pack("C", hex($1))/eg;
$value =~ s/<!--(.|\n)*-->//g; #deletes SSI's in case html is returned
$value =~ s/([:;<>\*\|`&\$!#\(\)\[\]\{\}'"])//g; # bleeps out html etc.
$form{$name} = $value;
}
if ($form{path}) {
if (substr($form{'path'},0,1) eq '/') {$form{'path'} = substr($form{'path'},1)}
if (substr($form{'path'},-1) ne '/') {$form{'path'} .= '/'}
}
$program = $ENV{SCRIPT_NAME};
$root = $ENV{DOCUMENT_ROOT};
if ($form{'directory'}) {
$form{'access'}=qq~AuthUserFile $root/$form{'path'}.htpasswd
AuthGroupFile /dev/null
AuthName "$form{'directory'}"
AuthType Basic
<Limit GET POST>
require valid-user
</Limit>~;
$form{'passwd'}="$form{'login'}:" . &Crypt($form{'password'});
}
&OutputPage;
sub OutputPage {
print "Cache-Control: No-Cache\nContent-Type: text/html\n\n";
print qq~<html><head><title>.htaccess Generator</title></head><body>
<form method=post action="$program">
<table><tr><td colspan=2><font face="Verdana, Arial, Helvetica, sans-serif" size=5><b>EZ Pass
<br>File Generator for .htaccess<br><font size=3><i>by Croesus Design</b></font><hr></td><tr>
<tr><td><font face="Verdana, Arial, Helvetica, sans-serif">
Name of Protected Area (this can be anything)</td>
<td><input name=directory value="$form{'directory'}"></td></tr>
<tr><td><font face="Verdana, Arial, Helvetica, sans-serif">
Secret Directory (path to password file, relative to document root)<br>Ex: private/</td>
<td><input name=path value="$form{'path'}"></td></tr>
<tr><td><font face="Verdana, Arial, Helvetica, sans-serif">Username</td>
<td><input name=login value="$form{'login'}"></td></tr>
<tr><td><font face="Verdana, Arial, Helvetica, sans-serif">Password</td>
<td><input type=password name=password value=$form{'password'}></td></tr>
<tr><td></td><td><input type=submit name=submit value="Generate Files"></td></tr>
<tr><td><font face="Verdana, Arial, Helvetica, sans-serif">.htaccess File Code</td>
<td><textarea name=access cols=60 rows=10>$form{'access'}</textarea></td></tr>
<tr><td><font face="Verdana, Arial, Helvetica, sans-serif">.htpasswd File Code</td>
<td><textarea name=passwd cols=60 rows=1>$form{'passwd'}</textarea></td></tr>
</table></form></body></html>~;
}
sub Crypt {
my $pass_code = shift(@_);
my @chr = ('a'..'z');
my $s1= @chr[int(rand($#chr + 1))];
my $s2= @chr[int(rand($#chr + 1))];
my $salt = "$s1$s2";
my $crypt=crypt($pass_code,$salt);
return $crypt;
} |
Thank you for any help.  |
|