eapi_decrypt.html 2.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576
  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="UTF-8">
  5. <meta name="viewport" content="width=device-width, initial-scale=1.0">
  6. <title>eapi 参数和返回内容解析</title>
  7. <link href="https://unpkg.com/tailwindcss@^2/dist/tailwind.min.css" rel="stylesheet">
  8. </head>
  9. <body>
  10. <div id="app" class="p-5 flex flex-col">
  11. <h1 class="text-2xl font-bold mb-5">eapi 参数和返回内容解析</h1>
  12. <textarea class="border border-gray-300 p-3 mb-5" v-model="hexString" rows="10"></textarea>
  13. <button @click="decrypt" class="bg-blue-500 hover:bg-blue-700 text-white font-bold py-2 px-4 rounded">
  14. 解密
  15. </button>
  16. <div class="mt-3">
  17. <input type="radio" id="format" name="format" v-model="isReq" value="true">
  18. <label for="format" class="ml-2">请求数据request params(针对请求数据的 params)</label>
  19. <input type="radio" id="noFormat" name="format" v-model="isReq" value="false" class="ml-5">
  20. <label for="noFormat" class="ml-2">返回数据 response 二进制数据(针对返回内容解析)</label>
  21. </div>
  22. <div>
  23. <p>解密结果:
  24. <pre>{{ JSON.stringify(JSON.parse(result), null, 2) }}</pre>
  25. </p>
  26. </div>
  27. <div>
  28. <p>使用例子:</p>
  29. <img src="/static/eapi_params.png" />
  30. <img src="/static/eapi_response.png" />
  31. </div>
  32. </div>
  33. <script src="https://cdn.jsdelivr.net/npm/axios"></script>
  34. <script src="https://cdn.jsdelivr.net/npm/vue@3"></script>
  35. <script>
  36. const app = Vue.createApp({
  37. data() {
  38. return {
  39. hexString: 'AD96DDB984491E79B6F429DD650C6E2AE524627AC223AC9A123C66BB0997965950FED137544A93DFC718E16F57C8C121AF537086F395570A5602A3922366D11964DAFACD7830AACABF62E5650E67F457E79C1D2E13502391FC3487216CC5BF8681843FCB8E05559487EB18AAC1BE0EFEA4F7B6A050478366153A9426C238B8869600B275704555A9EB94C92E4F3FDABE9E0BCE07645410D0AA7B675698A4CAE6CD3620633ABF0B849A4244CC8DFC5DB2646D5EA9B3954E62BFEF19AFEAFDDC34E55C3E9A1DD3167CF53D443617108141',
  40. result: '{}',
  41. isReq: true
  42. }
  43. },
  44. mounted() {
  45. this.decrypt()
  46. },
  47. methods: {
  48. async decrypt() {
  49. try {
  50. const res = await axios({
  51. url: `/eapi/decrypt?isReq=${this.isReq}&timestamp=${Date.now()}`,
  52. method: 'post',
  53. data: {
  54. hexString: this.hexString
  55. }
  56. })
  57. this.result = JSON.stringify(res.data.data)
  58. console.log(res.data);
  59. } catch (error) {
  60. console.error(error)
  61. alert(error?.response?.data?.message || '解密失败,数据格式错误')
  62. }
  63. }
  64. }
  65. })
  66. app.mount('#app')
  67. </script>
  68. </body>
  69. </html>