bddffeecafe447b71ac5a290220b6ed2c23c523fKlaus Luettich#!/usr/bin/perl
bddffeecafe447b71ac5a290220b6ed2c23c523fKlaus Luettich
bddffeecafe447b71ac5a290220b6ed2c23c523fKlaus Luettichuse strict;
bddffeecafe447b71ac5a290220b6ed2c23c523fKlaus Luettich
bddffeecafe447b71ac5a290220b6ed2c23c523fKlaus Luettichmy ($passwd,$len,$nletters,$salt,$result) = ("",0,0,"","");
bddffeecafe447b71ac5a290220b6ed2c23c523fKlaus Luettich
bddffeecafe447b71ac5a290220b6ed2c23c523fKlaus Luettichwhile(1) {
bddffeecafe447b71ac5a290220b6ed2c23c523fKlaus Luettich print("Enter password (THIS WILL BE ECHOED TO YOUR SCREEN).\n");
bddffeecafe447b71ac5a290220b6ed2c23c523fKlaus Luettich $passwd = <STDIN>;
bddffeecafe447b71ac5a290220b6ed2c23c523fKlaus Luettich chomp $passwd;
bddffeecafe447b71ac5a290220b6ed2c23c523fKlaus Luettich $len=length($passwd);
bddffeecafe447b71ac5a290220b6ed2c23c523fKlaus Luettich if(($len>8)||($len<6)) {
bddffeecafe447b71ac5a290220b6ed2c23c523fKlaus Luettich print("Password must be 6, 7 or 8 characters long.\n");
bddffeecafe447b71ac5a290220b6ed2c23c523fKlaus Luettich next;
bddffeecafe447b71ac5a290220b6ed2c23c523fKlaus Luettich }
bddffeecafe447b71ac5a290220b6ed2c23c523fKlaus Luettich
bddffeecafe447b71ac5a290220b6ed2c23c523fKlaus Luettich if($passwd =~ m/^[a-zA-Z]+$/o) {
bddffeecafe447b71ac5a290220b6ed2c23c523fKlaus Luettich print("Password should contain at least one non-letter.\n");
bddffeecafe447b71ac5a290220b6ed2c23c523fKlaus Luettich next;
bddffeecafe447b71ac5a290220b6ed2c23c523fKlaus Luettich }
bddffeecafe447b71ac5a290220b6ed2c23c523fKlaus Luettich print "Foo\n";
bddffeecafe447b71ac5a290220b6ed2c23c523fKlaus Luettich last;
bddffeecafe447b71ac5a290220b6ed2c23c523fKlaus Luettich}
bddffeecafe447b71ac5a290220b6ed2c23c523fKlaus Luettich
bddffeecafe447b71ac5a290220b6ed2c23c523fKlaus Luettichprint("Enter salt. This is not secret but should be a random\n",
bddffeecafe447b71ac5a290220b6ed2c23c523fKlaus Luettich "combination of two characters, each of which is an upper\n",
bddffeecafe447b71ac5a290220b6ed2c23c523fKlaus Luettich "or lower case letter, a digit, or . or /.\n");
bddffeecafe447b71ac5a290220b6ed2c23c523fKlaus Luettich
bddffeecafe447b71ac5a290220b6ed2c23c523fKlaus Luettich$salt = <STDIN>;
bddffeecafe447b71ac5a290220b6ed2c23c523fKlaus Luettich$result=crypt($passwd,$salt);
bddffeecafe447b71ac5a290220b6ed2c23c523fKlaus Luettich
bddffeecafe447b71ac5a290220b6ed2c23c523fKlaus Luettichif(! defined $result) {
bddffeecafe447b71ac5a290220b6ed2c23c523fKlaus Luettich print("Error in crypt.\n");
bddffeecafe447b71ac5a290220b6ed2c23c523fKlaus Luettich} else {
bddffeecafe447b71ac5a290220b6ed2c23c523fKlaus Luettich print("Password is \"$passwd\"\n",
bddffeecafe447b71ac5a290220b6ed2c23c523fKlaus Luettich "Send the following string: \"$result\".\n");
bddffeecafe447b71ac5a290220b6ed2c23c523fKlaus Luettich
bddffeecafe447b71ac5a290220b6ed2c23c523fKlaus Luettich}