import cgi, sys, crypt, os, random, string
print "Content-Type: text/html\n\n"
def generate_form():
print "<HTML>\n"
print "<HEAD>\n"
print "\t<TITLE>Generate Password Hash</TITLE>\n"
print "</HEAD>\n"
print "<BODY BGCOLOR = white>\n"
print "\t<H3>Generate Password Hash</H3>\n"
print "\t<TABLE BORDER = 0>\n"
print "\t\t<FORM METHOD = post ACTION = \
\"gen_pass.cgi\">\n"
print "\t\t<TR><TH>Enter password:</TH><TD><INPUT type = password \
name = \"the_pass\" value = \"\"></TD><TR>\n"
print "\t\t<TR><TH>Enter again :</TH><TD><INPUT type = password \
name = \"the_pass2\" value = \"\"></TD><TR>\n"
print "\t</TABLE>\n"
print "\t<INPUT TYPE = hidden NAME = \"action\" VALUE = \
\"display\">\n"
print "\t<INPUT TYPE = submit VALUE = \"Enter\">\n"
print "\t</FORM>\n"
print "</BODY>\n"
print "</HTML>\n"
def random_md5like_hash():
available_chars= string.hexdigits[:16]
return ''.join(
random.choice(available_chars)
for dummy in xrange(8))
def hash_it(the_pass):
return(crypt.crypt(the_pass, '$6$%s$' % random_md5like_hash()))
def display_hash(the_pass):
print "<HTML>\n"
print "<HEAD>\n"
print "\t<TITLE>Info Form</TITLE>\n"
print "</HEAD>\n"
print "<BODY BGCOLOR = white>\n"
print "Hashed Password:"
print "<pre>"
print hash_it(the_pass)
print "</pre>"
print "</BODY>\n"
print "</HTML>\n"
def main():
form = cgi.FieldStorage()
if (form.has_key("the_pass")):
if (form["the_pass"].value == form["the_pass2"].value):
display_hash(form["the_pass"].value)
else:
print "Passwords do not match."
else:
generate_form()
main()