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, see the FAQ.
|
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. The 24-char "result" strings are not hexadecimal, but they might be base 36. However, if so, they're too long to be reliably decoded by PHP's base_convert() function. 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. |
|||||
|