ソースを参照

助农:傻逼测试非说查询答题正确性的方案也不行,要把查询结果加密。

任一存 1 年間 前
コミット
4c9e73478a
2 ファイル変更69 行追加58 行削除
  1. 7 2
      game/src/api.js
  2. 62 56
      game/src/pass.js

+ 7 - 2
game/src/api.js

@@ -1,5 +1,5 @@
 import axios from "axios"
-import { encodeStr } from "@/pass.js"
+import { encodeStr, decodeStr } from "@/pass.js"
 import { Base64 } from "js-base64"
 import store from "@/store/index.js"
 import router from "@/router"
@@ -252,7 +252,12 @@ export async function checkExamAnswer(questionId, answerVal) {
   if (res.data.code !== 0) {
     throw (`查询答题结果失败:${res.data.msg}`)
   } else {
-    return res.data.data
+    let resDecoded = Base64.decode(decodeStr(res.data.data))
+    if (resDecoded === 'true') {
+      return true
+    } else {
+      return false
+    }
   }
 }
 /*

+ 62 - 56
game/src/pass.js

@@ -1,4 +1,3 @@
-/* eslint-disable */
 function NoToChinese (num) {
   num = String(num)
   var chnNumChar = ['零', '一', '二', '三', '四', '五', '六', '七', '八', '九', '十']
@@ -29,17 +28,16 @@ function randomWord (randomFlag, min, max) {
   return str
 }
 
-module.exports = {
-  formatDate: function (time) {
-    var weekArr = ['日', '一', '二', '三', '四', '五', '六']
-    var date = new Date(time)
-    var year = date.getFullYear()
-    var month = date.getMonth() + 1
-    var day = date.getDate()
-    var week = '星期' + weekArr[date.getDay()]
-    if (window.innerWidth < 1700) {
-      return (
-        year +
+export function formatDate (time) {
+  var weekArr = ['日', '一', '二', '三', '四', '五', '六']
+  var date = new Date(time)
+  var year = date.getFullYear()
+  var month = date.getMonth() + 1
+  var day = date.getDate()
+  var week = '星期' + weekArr[date.getDay()]
+  if (window.innerWidth < 1700) {
+    return (
+      year +
         '年' +
         (String(month).length > 1 ? month : '0' + month) +
         '月' +
@@ -47,10 +45,10 @@ module.exports = {
         '日' +
         '<br/>' +
         week
-      )
-    }
-    return (
-      year +
+    )
+  }
+  return (
+    year +
       '年' +
       (String(month).length > 1 ? month : '0' + month) +
       '月' +
@@ -58,49 +56,57 @@ module.exports = {
       '日' +
       ' ' +
       week
-    )
-  },
-  smoothscrollpos: function (domName) {
-    if (domName == '/') {
-      return window.scrollTo(0, 0)
-    }
-    const smoothscroll = () => {
-      const dom = document.getElementById(domName)
-      // window.scrollTo({
-      //   top:dom.offsetTop - 100,
-      //   left:0,
-      //   behavior: "smooth"
-      // })
-      dom && window.scrollTo(0, dom.offsetTop - 120)
-    }
-    smoothscroll()
-  },
+  )
+}
 
-  formatTime: function (time, fan = false) {
-    let t1 = time.split(' ')[0].split('-')
-    if (fan) {
-      t1 = t1.map((item) => {
-        const t = NoToChinese(item)
-        return t
-      })
-    }
-    return t1
-  },
-  encodeStr: function (str, strv = '') {
-    const NUM = 2
-    const front = randomWord(false, 8)
-    const middle = randomWord(false, 8)
-    const end = randomWord(false, 8)
+export function smoothscrollpos (domName) {
+  if (domName == '/') {
+    return window.scrollTo(0, 0)
+  }
+  const smoothscroll = () => {
+    const dom = document.getElementById(domName)
+    // window.scrollTo({
+    //   top:dom.offsetTop - 100,
+    //   left:0,
+    //   behavior: "smooth"
+    // })
+    dom && window.scrollTo(0, dom.offsetTop - 120)
+  }
+  smoothscroll()
+}
 
-    const str1 = str.substring(0, NUM)
-    const str2 = str.substring(NUM)
+export function formatTime (time, fan = false) {
+  let t1 = time.split(' ')[0].split('-')
+  if (fan) {
+    t1 = t1.map((item) => {
+      const t = NoToChinese(item)
+      return t
+    })
+  }
+  return t1
+}
+export function encodeStr (str, strv = '') {
+  const NUM = 2
+  const front = randomWord(false, 8)
+  const middle = randomWord(false, 8)
+  const end = randomWord(false, 8)
 
-    if (strv) {
-      const strv1 = strv.substring(0, NUM)
-      const strv2 = strv.substring(NUM)
-      return [front + str2 + middle + str1 + end, front + strv2 + middle + strv1 + end]
-    }
+  const str1 = str.substring(0, NUM)
+  const str2 = str.substring(NUM)
 
-    return front + str2 + middle + str1 + end
+  if (strv) {
+    const strv1 = strv.substring(0, NUM)
+    const strv2 = strv.substring(NUM)
+    return [front + str2 + middle + str1 + end, front + strv2 + middle + strv1 + end]
   }
+
+  return front + str2 + middle + str1 + end
 }
+export function decodeStr (str) {
+  const NUM = 2
+  const str1 = str.substring(8)
+  const str2 = str1.substring(0, str1.length - 8)
+  const front = str2.slice(-NUM)
+  const end = str2.substring(0, str2.length - 8 - NUM)
+  return front + end
+}