XFE Git
XFE Studio Git
Git 首页 全局搜索
XFE 主站 文档 NuGet
公开
关注 0 Fork 0 Star 0
返回提交历史

XFEstudio/bilibili-API-collect

修改wbi文档中的流程描述 (#718)

0abdd4b
icyu <62145553+vapehacker@users.noreply.github.com>
提交于

代码差异

1 个文件 +22 -17
Modified docs/misc/sign/wbi.md +22 -17
@@ -43,7 +43,7 @@
43 43 72136226c6a73669787ee4fd02a74c27
44 44 ```
45 45
46 3. 将欲签名的请求参数排序后编码
46 3. 为参数中添加`wts`时间戳
47 47
48 48 若下方内容为欲签名的请求参数(以 js obj 为例)
49 49
@@ -51,14 +51,29 @@
51 51 {
52 52 foo: '114',
53 53 bar: '514',
54 baz: 1919810
54 zab: 1919810
55 55 }
56 56 ```
57 57
58 那么按照 Key 排序并进行 url query 编码后的结果应为:
58 `wts`字段的值应为以秒为单位的 Unix TimeStamp,如`1684746387`
59
60 将`wts`参数添加在参数列表中,即:
59 61
62 ```javascript
63 {
64 foo: '114',
65 bar: '514',
66 zab: 1919810,
67 wts: 1684746387
68 }
60 69 ```
61 bar=514&baz=1919810&foo=114
70
71 4. 将欲签名的请求参数排序后编码
72
73 按照 Key 升序排序并进行 url query 编码后的结果应为:
74
75 ```
76 bar=514&foo=114&wts=1684746387&zab=1919810
62 77 ```
63 78
64 79 请注意,如果参数值为中文或特殊字符,则进行 url query 编码后的字符串中参数值对应的字母必须是**大写字母** (部分库会编码为小写字母)
@@ -78,34 +93,24 @@
78 93 bar=%E4%BA%94%E4%B8%80%E5%9B%9B&baz=1919810&foo=one%20one%20four
79 94 ```
80 95
81 4. 为参数中添加`wts`时间戳
82
83 `wts`字段的值应为以秒为单位的 Unix TimeStamp,如`1684746387`
84
85 将`wts`参数添加在参数列表最后,即:
86
87 ```
88 bar=514&baz=1919810&foo=114&wts=1684746387
89 ```
90
91 96 5. 计算`w_rid`并添加在其后
92 97
93 98 在上一步得出的 url query 字符串后拼接第 2 步计算得出的`mixin_key`(作为盐)
94 99
95 100 ```
96 bar=514&baz=1919810&foo=114&wts=168474638772136226c6a73669787ee4fd02a74c27
101 bar=514&foo=114&wts=1684746387&zab=191981072136226c6a73669787ee4fd02a74c27
97 102 ```
98 103
99 104 对这个整体进行 **md5 Hash 运算**(32-bit 字符小写),得到的值便是 Wbi Sign,也就是参数`w_rid`
100 105
101 106 ```
102 d3cbd2a2316089117134038bf4caf442
107 90efcab09403023875b8516f07e9f9de
103 108 ```
104 109
105 110 最后一步,把这个计算出的值作为参数`w_rid`添加在原始参数列表后,也就完成了一次 Wbi Sign,可以调用 REST API 进行请求了
106 111
107 112 ```
108 bar=514&baz=1919810&foo=114&wts=1684746387&w_rid=d3cbd2a2316089117134038bf4caf442
113 bar=514&foo=114&wts=1684746387&zab=1919810&w_rid=90efcab09403023875b8516f07e9f9de
109 114 ```
110 115
111 116 ## Wbi签名算法实现Demo