@liujialin/web-tools
v1.0.0
Published
Web 工具集合:signMD5加密,可按需扩展
Maintainers
Readme
dbb-web-tools
Web 工具集合(TypeScript):x-dy 签名、参数排序与 MD5 签名、AES 加密等。
安装
npm install dbb-web-tools使用
1. x-dy 签名(signMD5)
适用于 axios 等请求配置,按 x-dy 规范用 HmacSHA256 生成 x-dy-signature,并写入 config.headers['x-dy-signature']。
const { signMD5 } = require('dbb-web-tools');
// 在请求拦截器中:先设置 nonce、timestamp,再调 signMD5
config.headers['x-dy-nonce'] = nonce;
config.headers['x-dy-timestamp'] = timestamp;
signMD5(appSecret, config, config.method || 'GET', APP_KEY);
// config.headers['x-dy-signature'] 与 config.headers['x-dy-appkey'] 已写入参数: signMD5(appSecret, params, method, appKey?)
appSecret:密钥(必传)params:请求配置,同 axios config(headers、url、baseURL、params、data)method:'GET'|'POST'(必传)appKey:可选,传入时会设置params.headers['x-dy-appkey']
2. 参数排序与 MD5 签名(generateSignature)
参数排序后拼 &key=privateKey 做 MD5,返回大写 hex,常用于支付等场景。
const { getSortedParams, getSortedParamsString, generateSignature } = require('dbb-web-tools');
getSortedParams({ b: '2', a: '1', sign: 'x' }); // ['a=1', 'b=2']
getSortedParamsString({ b: '2', a: '1' }); // 'a=1&b=2'
generateSignature({ a: '1', b: '2' }, 'your-private-key'); // MD5 大写 hex3. AES 加密(encrypt)
CBC、Pkcs7,key/iv 按 UTF8 解析。
const { encrypt } = require('dbb-web-tools');
encrypt('plaintext', 'key16bytes!!!!!!', 'iv16bytes!!!!!!');TypeScript
import { signMD5, type SignParams, generateSignature, encrypt } from 'dbb-web-tools';发布到 npm
- 在 npmjs.com 注册并登录。
- 在项目根目录执行:
npm login npm publish- 若包名
dbb-web-tools已被占用,可在package.json中改为作用域包,例如"name": "@你的用户名/dbb-web-tools",然后执行npm publish --access public。
- 若包名
License
MIT
