yuebonui-vue3/src/utils/yuebon.js

(开头部分) 1KB

这里只显示每个文件的开头 60 行。登录后可以解锁完整代码。

import md5 from 'js-md5'

/**
 * 获取一个32位随机字符串
 * @returns
 */
export function GetRandomString() {
  var chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz123456789'
  var maxPos = chars.length
  var pwd = ''
  for (var i = 0; i < 32; i++) {
    pwd += chars.charAt(Math.floor(Math.random() * maxPos))
  }
  return pwd
}

/**
* 签名
* @param config 请求配置
* @param nonce 随机字符串
* @param timestamp 签名时间戳
* @param appSecret 应用密钥
* @param method 请求方式
*/
export function sign(config, nonce, timestamp, appSecret) {
  // 签名格式: timestamp + nonce + data(字典升序)+appSecret
  const ret = []
  if (config.params) {
    const pArray = []
    const data = config.params
    for (const it in data) {
      pArray.push(it)
    }
    // 字典升序
    const sArray = pArray.sort()
    for (const it of sArray) {
      let val = data[it]
      if (typeof val === 'object' && //
        (!(val instanceof Array) || (val.length > 0 && (typeof val[0] === 'object')))) {
        val = JSON.stringify(val)
      }
      ret.push(it + val)
    }
  } else {
    ret.push(JSON.stringify(config.data))
  }
  const signsrc = timestamp + nonce + ret.join('') + appSecret
  return md5(signsrc)
}

// 返回项目路径
export function getNormalPath(p) {
  if (p.length === 0 || !p || p == 'undefined') {
    return p
  };
  let res = p.replace('//', '/')
  if (res[res.length - 1] === '/') {
    return res.slice(0, res.length - 1)
  }
  return res;
后面还有 14 行代码,解锁后查看完整代码

24 小时内免费解锁 3 个项目,之后 1 算力/个。 规则说明

AI 解读 AI

登录后可用,每次 10 算力,解读结果公开显示在下面。

还没有人解读过这个文件。