Skip to content

Commit

Permalink
Changed and simplified ID obfuscation algoritm. Sorry about that
Browse files Browse the repository at this point in the history
  • Loading branch information
adolfintel committed Feb 14, 2019
1 parent 0c4dbe5 commit 78c0190
Showing 1 changed file with 11 additions and 8 deletions.
19 changes: 11 additions & 8 deletions telemetry/idObfuscation.php
Original file line number Diff line number Diff line change
Expand Up @@ -18,22 +18,25 @@ function getObfuscationSalt(){
This is a simple reversible hash function I made for encoding and decoding test IDs.
It is not cryptographically secure, don't use it to hash passwords or something!
*/
function obfdeobf($id){
function obfdeobf($id,$dec){
$salt=getObfuscationSalt()&0xFFFFFFFF;
$id=$id&0xFFFFFFFF;
for($i=0;$i<16;$i++){
if($dec){
$id=$id^$salt;
$salt=(($salt>>1)&0xFFFFFFFF)|(($salt&0x00000001)<<31);
$id=((0x0000FFFF&$id)<<16)|((0xFFFF0000&$id)>>16);
$id=(($id>>1)&0xFFFFFFFF)|(($id&0x00000001)<<31);
$id=(($id&0xAAAAAAAA)>>1)|($id&0x55555555)<<1;
$id=(($id&0x0000FFFF)<<16)|(($id&0xFFFF0000)>>16);
return $id;
}else{
$id=(($id&0x0000FFFF)<<16)|(($id&0xFFFF0000)>>16);
$id=(($id&0xAAAAAAAA)>>1)|($id&0x55555555)<<1;
return $id^$salt;
}
return $id;
}
function obfuscateId($id){
return str_pad(base_convert(obfdeobf($id+1),10,36),7,0,STR_PAD_LEFT);
return str_pad(base_convert(obfdeobf($id+1,false),10,36),7,0,STR_PAD_LEFT);
}
function deobfuscateId($id){
return obfdeobf(base_convert($id,36,10))-1;
return obfdeobf(base_convert($id,36,10),true)-1;
}

//IMPORTANT: DO NOT ADD ANYTHING BELOW THE PHP CLOSING TAG, NOT EVEN EMPTY LINES!
Expand Down

0 comments on commit 78c0190

Please sign in to comment.