Dancer-Plugin-EncodeID

 view release on metacpan or  search on metacpan

README  view on Meta::CPAN

                    my $clear_text_id = decode_id( params->{encoded_id} ) ;

                    return "Showing item '$clear_text_id'";
            };

            dance;

FUNCTIONS
    `encode_id(ID [,PREFIX])' - Encodes the given ID, returns the encoded
    hash value. If "PREFIX" is given, it will be added to the ID before
    encoding. It can be used when decoding to verify the decoded value is
    valid.

    `decode_id(ID [,PREFIX])' - Decodes the given ID, returns the original
    (cleartext) ID value. If "PREFIX" is given, it will be used to verify
    the validity of the ID.

DESCRIPTION
    This module aims to make it as easy as possible to obfuscate internal
    IDs when using them in a URL given to users. Instead of seeing
    http://myserver.com/item/42 users will see

lib/Dancer/Plugin/EncodeID.pm  view on Meta::CPAN

		#print STDERR "Decoding: '$sub_text'\n";
		my $ciphertext = pack('H2' x scalar(@list), @list) ;

		my $text = $cipher->decrypt($ciphertext);
		$text =~ s/^$padding_character+//;
		#print STDERR "Decoded: '$text'\n";
		$cleartext .= $text;
	};

	if (defined $prefix) {
		## Ensure the decoded ID contains the prefix
		my $i = index $cleartext,$prefix;
		if ($i != 0) {
			die "Invalid Hash-ID value ($orig_encoded_id) - bad prefix" ;
		}
		#skip the prefix;
		$cleartext = substr $cleartext, length($prefix);
	}

	return $cleartext;
};

lib/Dancer/Plugin/EncodeID.pm  view on Meta::CPAN


		return "Showing item '$clear_text_id'";
	};

	dance;

=head1 FUNCTIONS

C<encode_id(ID [,PREFIX])> - Encodes the given ID, returns the encoded hash value.
			     If "PREFIX" is given, it will be added to the ID before encoding.
			     It can be used when decoding to verify the decoded value is valid.

C<decode_id(ID [,PREFIX])> - Decodes the given ID, returns the original (cleartext) ID value.
			     If "PREFIX" is given, it will be used to verify the validity of the ID.

=head1 DESCRIPTION

This module aims to make it as easy as possible to obfuscate internal IDs
when using them in a URL given to users. Instead of seeing L<http://myserver.com/item/42>
users will see L<http://myserver.com/item/c98ea08a8e8ad715> .
This will prevent nosy users from trying to iterate all items based on a simple ID in the URL.



( run in 0.242 second using v1.01-cache-2.11-cpan-26ccb49234f )