test
This commit is contained in:
50
js-demo/server/tool/index.ts
Normal file
50
js-demo/server/tool/index.ts
Normal file
@@ -0,0 +1,50 @@
|
||||
import crypto from "crypto"
|
||||
|
||||
/**
|
||||
* 鉴权加密
|
||||
* @param {*} params
|
||||
* @returns
|
||||
*/
|
||||
export function getEncodeHeader(
|
||||
params = {},
|
||||
appKey: string,
|
||||
appSecret: string
|
||||
) {
|
||||
const timestamp = parseInt(Date.now() / 1000 + "")
|
||||
const nonce = parseInt(Math.random() * 100000 + "") + timestamp
|
||||
const header = {
|
||||
"x-bili-accesskeyid": appKey,
|
||||
"x-bili-content-md5": getMd5Content(JSON.stringify(params)),
|
||||
"x-bili-signature-method": "HMAC-SHA256",
|
||||
"x-bili-signature-nonce": nonce + "",
|
||||
"x-bili-signature-version": "1.0",
|
||||
"x-bili-timestamp": timestamp
|
||||
}
|
||||
const data: string[] = []
|
||||
for (const key in header) {
|
||||
data.push(`${key}:${header[key]}`)
|
||||
}
|
||||
|
||||
const signature = crypto
|
||||
.createHmac("sha256", appSecret)
|
||||
.update(data.join("\n"))
|
||||
.digest("hex")
|
||||
return {
|
||||
Accept: "application/json",
|
||||
"Content-Type": "application/json",
|
||||
...header,
|
||||
Authorization: signature
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* MD5加密
|
||||
* @param {*} str
|
||||
* @returns
|
||||
*/
|
||||
export function getMd5Content(str) {
|
||||
return crypto
|
||||
.createHash("md5")
|
||||
.update(str)
|
||||
.digest("hex")
|
||||
}
|
||||
Reference in New Issue
Block a user