idObfuscation.php 918 B

1234567891011121314151617181920212223242526272829303132333435
  1. <?php
  2. function getObfuscationSalt(){
  3. $saltFile=dirname(__FILE__)."/idObfuscation_salt.php";
  4. if(file_exists($saltFile)){
  5. require $saltFile;
  6. }else{
  7. $bytes=openssl_random_pseudo_bytes(4);
  8. $sf=fopen($saltFile,"w");
  9. fwrite($sf,chr(60)."?php\n");
  10. fwrite($sf,'$OBFUSCATION_SALT=0x'.bin2hex($bytes).";\n");
  11. fwrite($sf,"?".chr(62));
  12. fclose($sf);
  13. require $saltFile;
  14. }
  15. return isset($OBFUSCATION_SALT)?$OBFUSCATION_SALT:0;
  16. }
  17. function obfdeobf($id){
  18. $salt=getObfuscationSalt()&0xFFFFFFFF;
  19. $id=$id&0xFFFFFFFF;
  20. for($i=0;$i<16;$i++){
  21. $id=$id^$salt;
  22. $id=(($id>>1)&0xFFFFFFFF)|(($id&0x00000001)<<31);
  23. $salt=(($salt<<1)&0xFFFFFFFF)|(($salt&0xA0000000)>>31);
  24. }
  25. return $id;
  26. }
  27. function obfuscateId($id){
  28. return base_convert(obfdeobf($id),10,36);
  29. }
  30. function deobfuscateId($id){
  31. return obfdeobf(base_convert($id,36,10));
  32. }
  33. //IMPORTANT: DO NOT ADD ANYTHING BELOW THE PHP CLOSING TAG, NOT EVEN EMPTY LINES!
  34. ?>