app直播原始碼,uniapp隨機數生成簽名

zhibo系統開發發表於2023-11-08

app直播原始碼,uniapp隨機數生成簽名

1、首先,需要引入 node.js 內建模組 crypto,它提供了一些加密相關的函式和方法。可以在專案的 common 資料夾下新建一個 js 檔案,例如 utils.js,並在其中定義一個生成隨機串的方法,例如:

// 引入 node.js 內建模組 crypto
const crypto = require('crypto');
 
/**
 * 生成指定長度的隨機字串
 * @param {Number} length 隨機字串的長度,預設為 16
 * @return {String} 生成的隨機字串
 */
export function generateNonceStr(length = 16) {
  const chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789';
  const maxPos = chars.length;
  let nonceStr = '';
  for (let i = 0; i < length; i++) {
    nonceStr += chars.charAt(Math.floor(Math.random() * maxPos));
  }
  return nonceStr;
}
 
/**
 * 根據引數物件生成簽名
 * @param {Object} params 引數物件
 * @param {String} key 秘鑰
 * @return {String} 生成的簽名
 */
export function generateSignature(params, key) {
  // 按照字典序排序所有引數
  const sortedParams = Object.keys(params).sort().reduce((obj, key) => {
    obj[key] = params[key];
    return obj;
  }, {});
 
  // 將引數拼接成 key=value&key=value 的形式,並以 &key=API_KEY的方式結尾
  const str = Object.entries(sortedParams)
    .filter(([key, value]) => value !== '' && typeof value !== 'undefined')
    .map(([key, value]) => `${key}=${value}`)
    .join('&') + `&key=${key}`;
 
  // 使用 MD5 演演算法對拼接後的字串進行加密,並返回加密結果的大寫字母形式
  return crypto.createHash('md5').update(str, 'utf8').digest('hex').toUpperCase();
}


2、在專案中使用時,可以按照以下方式呼叫:

import { generateNonceStr, generateSignature } from '@/common/utils';
 
// 示例:生成支付預訂單需要的隨機串和簽名
const params = {
  appid: 'your_appid',
  mch_id: 'your_mch_id',
  nonce_str: generateNonceStr(),
  body: '商品描述',
  out_trade_no: '商戶訂單號',
  total_fee: '訂單總金額',
  spbill_create_ip: '呼叫支付介面的機器 IP',
  notify_url: '接收微信支付非同步通知回撥地址',
  trade_type: 'JSAPI',
  openid: '使用者 openid'
};
const key = 'your_key';
const sign = generateSignature(params, key);
 
console.log('隨機串:', params.nonce_str);
console.log('簽名:', sign);


 以上就是 app直播原始碼,uniapp隨機數生成簽名,更多內容歡迎關注之後的文章


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69978258/viewspace-2993502/,如需轉載,請註明出處,否則將追究法律責任。

相關文章