idObfuscation.php 922 B

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