Hackthissite - Ext Basic 11

過唔到第十關,試下寫個perl script 去 decode 第十一關...

8/6 後記..
終於寫左個perl 去decode 個password.


!/usr/bin/perl -w

use strict;

my $passorg=1065435274;
#my $passorg=1024-1;
my $maxvalue=2**32;
my $passval;
my $valadded=-1;
my @prime=(2,3,5,7,11,13,17,19,23,29,31,37,41,43,47,53,59,61,67,71,73,79,83,89,97,101);
my %primehash=("a",2,"b",3,"c",5,"d",7,"e",11,"f",13,"g",17,"h",19,"i",23,"j",29,"k",31,"l",37,"m",41,"n",43,"o",47,"p",53,"q",59,"r",61,"s",67,"t",71,"u",73,"v",79,"w",83,"x",89,"y",97,"z",101);
my %reverseprime= reverse %primehash;
my @solveprime;
#my @a;
my $i;

do {
@solveprime=();
$valadded+=1;
$passval=$passorg+$valadded*$maxvalue;
print "Try value: ".$passval."\n";
foreach $i (@prime){
if (!($passval % $i)){
$passval /= $i;
push @solveprime, $i;
redo;
}
}
} until ($passval < $prime[$#prime]);
push @solveprime, $i;

print "Result: \n";
foreach $i (@solveprime){
print $reverseprime{"$i"},"---",$i,"\n";
}
exit;

Comments

Popular Posts