in reply to Re: Re: integer encoder/decoder
in thread integer encoder/decoder

I dont want "IP1" and "Sessionid1" to ever produce a 9 digit number that can be produced by any other "IP" and "Sessionid" combination. The encoding is really the vital part.
This is not possible. You want a 9-digit session-ID number (about 30 bits of information) to be added to an IP address (about 14 or 15 bits of info, depending on how you throw out invalid network numbers), resulting in only a 9-digit number (about 30 bits of info again).

You can't do it. You can't fit 45 bits of info into 30 bits of output, without some of them overlapping.

You'll need to think of a different strategy. You can't even fit it into 9 hex characters (36 bits of info). If you insist on nine output symbols, you'll need to use some larger base, something with at least 5 bits of info per symbol, like base 36 encoding with 0-9 and a-z.

-- Randal L. Schwartz, Perl hacker
Be sure to read my standard disclaimer if this is a reply.