=========================================================== sub encrypt { my ($self, $STRING) = @_; my $ENCRYPTED_STRING = ''; my $LENGTH = length($STRING); my @STRING = split(//,$STRING); my $ENCRYPTION_MAP = "abcdefghijklmNOPQRSTUVWXYZABCDEFGHIJKLMnopqrstuvwxyz0123456789.&@="; my @ENCRYPTION_ARRAY = split(//,$ENCRYPTION_MAP); my $MAP_LENGTH = length($ENCRYPTION_MAP); my $MAP_HALF = length($ENCRYPTION_MAP)/2; for ($i=0; $i < $LENGTH; $i++) { my $CHARACTER = $STRING$i; my $POSITION = index($ENCRYPTION_MAP, "$CHARACTER"); if ($POSITION ($POSITION + $MAP_HALF) % $MAP_LENGTH"); } } return $ENCRYPTED_STRING; } ################################## # CHARACTER ESCAPING SUBROUTINE: # ################################## sub EscapeCharacter { my $CHARACTER_TO_ESCAPE = shift; if(($CHARACTER_TO_ESCAPE eq '&') || ($CHARACTER_TO_ESCAPE eq '\\') || ($CHARACTER_TO_ESCAPE eq ' ') || ($CHARACTER_TO_ESCAPE eq '%') || ($CHARACTER_TO_ESCAPE eq '@') || ($CHARACTER_TO_ESCAPE eq '/') || ($CHARACTER_TO_ESCAPE eq '#') || ($CHARACTER_TO_ESCAPE eq '=') || ($CHARACTER_TO_ESCAPE eq '"') || ($CHARACTER_TO_ESCAPE eq "'") || ($CHARACTER_TO_ESCAPE eq '+') || ($CHARACTER_TO_ESCAPE eq '|') || ($CHARACTER_TO_ESCAPE eq '?')) { $CHARACTER_TO_ESCAPE = ord("$CHARACTER_TO_ESCAPE"); $CHARACTER_TO_ESCAPE = sprintf "%x", $CHARACTER_TO_ESCAPE; return ".$CHARACTER_TO_ESCAPE"; } else { return $CHARACTER_TO_ESCAPE;} }