I'm delighted at the way you got the crypt()
output to come out the way you wanted it to.
How did you arrange that? Did you just use trial and error
to try input strings until you found the ones you needed?
Or is there something clever going on that I missed?
If I were doing this, I would have mixed up the
$2... variables:
eval"$1('$6','$7'),$1('$2','$3'),$1('$4','$9'),$1('$8','$5')";
and then permuted the initial value for $_
to match the new order, but that's just me.
| [reply] [d/l] |
I just used brute force to get the results I wanted. You're not missing anything :)
I thought, after posting, about messing around with the eval, but someone had something better for me to do :)
Here's the brute force hack, and I do mean hack, I used to get the right data to make it work. I'm sure there are much quicker ways of doing this, but I had CPU cycles and time to kill. It took less than 24 hours on my puny box. Further chaos could be created by pushing for more "random" strings, but that just seemed like it would try my patience too much. I didn't bother cleaning it up much, but here it is FWIW.
#!/usr/bin/perl -w
use strict;
my @foo;
my $salt = 'ja';
my $match = 'ph';
for ('A'..'Z','a'..'z') {
$foo[0] = $_;
for ('A'..'Z','a'..'z') {
$foo[1] = $_;
for ('A'..'Z','a'..'z') {
$foo[2] = $_;
for ('A'..'Z','a'..'z') {
$foo[3] = $_;
for ('A'..'Z','a'..'z') {
$foo[4] = $_;
for ('A'..'Z','a'..'z') {
$foo[5] = $_;
for ('A'..'Z','a'..'z') {
$foo[6] = $_;
for ('A'..'Z','a'..'z') {
$foo[7] = $_;
if ( crypt(join('', @foo), $salt) =~ /$match/) {
print "Result: ", join('', @foo, "\n");
exit;
}
}
}
}
}
}
}
}
}
| [reply] [d/l] |
That works, but here's
an alternative that may run faster.
The code on that page isn't quite
what you want, but it's close: It checks all possible
strings of 8 characters. You would probably
want to fix up the code to only do the letters.
If you did that, you would be able to get rid of the
map. Of course you'd want to change the
success condition also.
I'm really glad we got to discuss this, because up until now I thought
the code on that page was completely useless, and now
I know it's only almost completely useless.
| [reply] |