#! /usr/bin/perl our $username; our $name; our $passwd; our $password; our $rot; print ":::this is passwd stickum:::\n"; print "to recover and hide passwords\n"; print "---press any key to begin---\n"; if (){&user}; sub user{ print "Account name:\n"; while (<>){ $username=$_; chomp $username; &query; } sub query{ print "Restore saved?\n"; while (<>){ my $mode=$_; if ($mode=~/yes|y/){ &recordsread; } elsif($mode=~/no|n/){ &recordswrite; } } } sub recordsread{ open(PASSWD, "+){ $/="\n"; ($name, $passwrd)=split (/:/); next LINE if($name ne $username); feistal($passwrd); } print "The plaintext is:$rot\n"; close PASSWD; } sub recordswrite{ print "What is the new password?\n"; $passwd=; feistal($password); open (PASSWD "+){ $\="/n"; $line=$_; next EXISTS unless $line=undef; } print PASSWD "$username:$rot"; close PASSWD; print "Recorded, go ahead and forget\n"; } sub feistal{ $rot=shift@_; $rot=~tr/A-Ma-mN-Zn-z/N-Zn-zA-Ma-m/; return $rot; }