Skip to content

Commit

Permalink
generate better hex ids for manually created badly formed guids
Browse files Browse the repository at this point in the history
  • Loading branch information
haarg committed Jun 10, 2010
1 parent 0ddd109 commit 596420c
Showing 1 changed file with 6 additions and 4 deletions.
10 changes: 6 additions & 4 deletions lib/WebGUI/Session/Id.pm
Expand Up @@ -145,7 +145,7 @@ sub session {

=head2 toHex ( guid )
Returns the hex value of a guid
Returns the hex value of a guid. For all GUIDs generated by the generate method, the return value will be 32 characters long. For some manually created invalid GUIDs, it may be 33 characters long.
=head3 guid
Expand All @@ -154,11 +154,13 @@ guid to convert to hex value.
=cut

sub toHex {
my $self = shift;
my $self = shift;
my $id = shift;
$id =~ tr{_-}{+/};
my $bin_id = decode_base64("$id==");
my $hex_id = sprintf('%*v02x', '', $bin_id);
$id .= 'AA';
my $bin_id = decode_base64($id);
my $hex_id = unpack("H*", $bin_id);
$hex_id =~ s/0{3,4}$//;
return $hex_id
}

Expand Down

0 comments on commit 596420c

Please sign in to comment.