generate better hex ids for manually created badly formed guids

This commit is contained in:
Graham Knop 2010-06-10 11:32:32 -05:00
parent 0ddd109775
commit 596420cd1f

View file

@ -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
@ -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
}