Skip to content

认证授权 ​

本章节详细介绍了平台的认证机制、签名算法以及参数加密方式,确保API通信的安全性。

🛠️ 接口必需参数 ​

所有接入平台API的接口均须包含以下参数:

参数说明示例
agent代理编号10001
param参数加密字符串Zhm1p0RRzzI+3SFURqryL8...
timestamp时间戳1736751734
keyMD5 校验字符串7295a7d851243e8af3c8439db44ceba0

🔐 签名算法与示例 ​

📊 参数加密 ​

需要加密的参数示例:

参数说明范例
s操作子类型0
account玩家账号111111
money金额 (转帐钱包模式上分用,单一钱包模式无效)100
orderid流水号10001202501130000001111111
ip客户端请求IP127.0.0.1
lineCode站点识别码 (选填)line01
KindID游戏ID1
currency币别CNY

🔒 AES 加密流程 ​

1. 以Query String组成待加密字符串

将参数按照以下格式组成字符串:

s=0&account=111111&money=100&orderid=10001202501130000001111111&ip=127.0.0.1&lineCode=line01&KindID=1&currency=CNY

2. 使用 AES-128-ECB 进行加密

💡 AES 加密实现

平台使用 AES-128-ECB 模式进行参数加密,密钥由平台提供

使用示例

javascript
const crypto = require('crypto');

function aesEncrypt(param, desKey) {
  let cipherChunks = [];
  let cipher = crypto.createCipheriv('aes-128-ecb', desKey, '');
  cipher.setAutoPadding(true);
  cipherChunks.push(cipher.update(param, 'utf8', 'base64'));
  cipherChunks.push(cipher.final('base64'));
  return cipherChunks.join('');
}

// DESKey (平台提供)
const desKey = '9DA9A418752C85C7';

const paramString = 's=0&account=111111&money=100&orderid=10001202501130000001111111&ip=127.0.0.1&lineCode=line01&KindID=1&currency=CNY';
const encryptedParam = aesEncrypt(paramString, desKey);
console.log(encryptedParam);

3. 加密结果

Zhm1p0RRzzI+3SFURqryL819/70k20+XhLINyQ9flnH0kkHIDjfvn7tq1kh0jNN6MPYrW783Ae5tJ2rxpBdW/a3RUfO8G42eMfPgvt3muH85OAjw3acClpGoYWl/8qQ4Y1g1DGhOq9JDa1dNytrqh7I4uhv/Ki/AzntyT1o3lxI=

🔐 MD5 校验 ​

1. 组成待加密字符串

将以下参数组合:

agent + timestamp + MD5Key

2. MD5 加密实现

javascript
const crypto = require('crypto');

function md5Encrypt(agent, timestamp, md5Key) {
  const concatenated = agent + timestamp + md5Key;
  const hash = crypto
    .createHash('md5')
    .update(concatenated)
    .digest('hex');
  return hash;
}

// MD5Key (平台提供)
const md5Key = '405B856329C9D8YB';

// 使用示例
const agent = '10001';
const timestamp = '1736751734';
const keyHash = md5Encrypt(agent, timestamp, md5Key);
console.log(keyHash);

3. 加密示例

输入: 100011736751734405B856329C9D8YB
输出: ec9b5d714ab75cbe2dd7e15ae7443139

🔧 完整流程 ​

步骤说明 ​

1

准备接口参数

准备请求接口所需的业务参数

2

组成参数字符串

按照 Query String格式组成字符串

3

AES 加密

进行 AES-128-ECB 加密

4

生成 MD5 校验

使用 agent + timestamp + MD5Key 生成校验码

5

发送请求

包含 agent、param、timestamp、key 四个参数

🔍 注意事项 ​

🔒 安全提醒

  • 保护密钥:AESKey 和 MD5Key 密钥应妥善保管,避免泄露
  • 使用 HTTPS:所有 API 请求必须使用 HTTPS 协议
  • IP 白名单:配置 IP 白名单,限制请求来源
  • 日志记录:记录认证失败的请求,便于排查问题和安全监控