So I think the algorithm is based on the php function
ENCODING_decode defined in includes/encoding.php (which i don't have) .
The encoded result
$xId_campaign_encoded from the php script has always 24 alphanumeric characters
closed as not a real question by Jeff Ferland♦ Apr 8 at 3:15
It's difficult to tell what is being asked here. This question is ambiguous, vague, incomplete, overly broad, or rhetorical and cannot be reasonably answered in its current form. For help clarifying this question so that it can be reopened, visit the help center.If this question can be reworded to fit the rules in the help center, please edit the question.
The user and campaign IDs seem to be hexadecimal numbers (of 32 and 48 bits respectively). I see no obvious structure in them — they're definitely not printable ASCII byte strings.
However, if you look carefully at the sample strings, you'll notice that letters only appear in odd-numbered character positions. This suggests that the strings might be encoded two characters at a time. In fact, if you split each string into two-character pairs, swap the letters in each pair and decode them as base 36 numbers, all the values turn out to be less than 256. Specifically, the strings you gave decode to the following hexadecimal strings:
These still show quite a bit of redundancy; for example, the upper nibble of each byte is always
In fact, plotting the frequency of all bytes as a table, with the upper byte as the row (showing only rows
However, I can't immediately think of what might be generating such a byte distribution, but it does seem too distinct to be just a coincidence.