Jwt.php 3.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100
  1. <?php
  2. // by 请勿倒卖,已申请软著,否则追究法律责任
  3. namespace app\webview;
  4. class Jwt
  5. {
  6. function decode($str)
  7. {
  8. $_var_0 = $this->safeUrlBase64Decode($str);
  9. $_var_1 = $this->rc4($_var_0, "H3kTiX" . "keyW3ABy46");
  10. $_var_2 = $this->jwtDecode($_var_1);
  11. return $_var_2;
  12. }
  13. function encode($json)
  14. {
  15. $_var_3 = $this->safeUrlBase64Decode($this->safeUrlBase64Decode("U2xkVQ"));
  16. $_var_4 = $this->safeUrlBase64Decode($this->safeUrlBase64Decode("VFVRMQ"));
  17. $_var_5 = $this->safeUrlBase64Decode("czIwMT" . "kwNTIw");
  18. $_var_6 = $this->safeUrlBase64Decode("MWtOTD" . "V4UEdMRTlOU3paSA");
  19. $_var_7 = $this->safeUrlBase64Encode(json_encode(["typ" => $_var_3, "alg" => $_var_4, "kid" => $_var_5]));
  20. $_var_8 = $this->safeUrlBase64Encode(json_encode($json));
  21. $_var_9 = $this->sign($_var_7 . "." . $_var_8, $_var_6);
  22. return $this->rc4Encode($_var_7 . "." . $_var_8 . "." . $_var_9);
  23. }
  24. function safeUrlBase64Decode($str)
  25. {
  26. $str = str_replace(["-", "_"], ["+", "/"], $str);
  27. $_var_10 = strlen($str) % 4;
  28. if ($_var_10 > 0) {
  29. $str .= "[=,=]";
  30. }
  31. return base64_decode($str);
  32. }
  33. function safeUrlBase64Encode($str)
  34. {
  35. $str = base64_encode($str);
  36. return str_replace(["+", "/", "="], ["-", "_", ""], $str);
  37. }
  38. function jwtDecode($str)
  39. {
  40. $_var_11 = explode(".", $str);
  41. return $this->safeUrlBase64Decode($_var_11[1]);
  42. }
  43. function rc4($_var_12, $_var_13)
  44. {
  45. $_var_14 = "";
  46. $_var_15[] = "";
  47. $_var_16[] = "";
  48. $_var_17 = strlen($_var_13);
  49. $_var_18 = strlen($_var_12);
  50. for ($_var_19 = 0; $_var_19 < 256; $_var_19++) {
  51. $_var_15[$_var_19] = ord($_var_13[$_var_19 % $_var_17]);
  52. $_var_16[$_var_19] = $_var_19;
  53. }
  54. for ($_var_20 = $_var_19 = 0; $_var_19 < 256; $_var_19++) {
  55. $_var_20 = ($_var_20 + $_var_16[$_var_19] + $_var_15[$_var_19]) % 256;
  56. $_var_21 = $_var_16[$_var_19];
  57. $_var_16[$_var_19] = $_var_16[$_var_20];
  58. $_var_16[$_var_20] = $_var_21;
  59. }
  60. for ($_var_22 = $_var_20 = $_var_19 = 0; $_var_19 < $_var_18; $_var_19++) {
  61. $_var_22 = ($_var_22 + 1) % 256;
  62. $_var_20 = ($_var_20 + $_var_16[$_var_22]) % 256;
  63. $_var_21 = $_var_16[$_var_22];
  64. $_var_16[$_var_22] = $_var_16[$_var_20];
  65. $_var_16[$_var_20] = $_var_21;
  66. $_var_23 = $_var_16[($_var_16[$_var_22] + $_var_16[$_var_20]) % 256];
  67. $_var_14 .= chr(ord($_var_12[$_var_19]) ^ $_var_23);
  68. }
  69. return $_var_14;
  70. }
  71. function rc4Encode($str)
  72. {
  73. $_var_24 = $this->rc4($str, "H3kTiX" . "keyW3ABy46");
  74. return $this->safeUrlBase64Encode($_var_24);
  75. }
  76. function sign($str1, $str2)
  77. {
  78. $_var_25 = hash_hmac("md5", $str1, $str2, true);
  79. return $this->safeUrlBase64Encode($_var_25);
  80. }
  81. function signParam($_var_26, $_var_27)
  82. {
  83. $_var_28 = hash_init("md5", HASH_HMAC, $_var_27);
  84. foreach ($_var_26 as $_var_29 => $_var_30) {
  85. hash_update($_var_28, $_var_29);
  86. hash_update($_var_28, $_var_30);
  87. }
  88. return hash_final($_var_28);
  89. }
  90. function getBytes($string)
  91. {
  92. $_var_31 = array();
  93. for ($_var_32 = 0; $_var_32 < strlen($string); $_var_32++) {
  94. $_var_31[] = ord($string[$_var_32]);
  95. }
  96. return $_var_31;
  97. }
  98. }