たぶんこれで大丈夫だと思う・・・
sub trip {
my $key = shift;

$key =~ s/"/"/g;
$key =~ s/</&lt;/g;
$key =~ s/>/&gt;/g;

my $salt = substr("${key}H.", 1, 2);
$salt =~ tr/\x00-\x2d\x7b-\xff/./;
$salt =~ tr/\x3a-\x40\x5b-\x60/A-Ga-f/;

return substr(crypt($key, $salt), -8);
}