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

XFEstudio/bilibili-API-collect

添加了生成CorrespondPath算法的Go实现 (#860)

2dad899
cqrect <136703144+cqrect@users.noreply.github.com>
提交于

代码差异

1 个文件 +55 -0
Modified docs/login/cookie_refresh.md +55 -0
@@ -223,6 +223,61 @@ fun getCorrespondPath(timestamp: Long): String {
223 223 1428cbd14605ae42a0b42e22662cfe51d8e5034eeaffb36a46db46bd2f93216cbfd4d150cca2de44395add7c664b40acf44424ee8d634fc821b909423665a34d18bd7f4e77ea5388a2b612daf875e2fe8df62990e14b64a465898b0707bc1288586b68f9f4f2f20bea5cb1cada296beb8009e91bc8fb57a4b81b8923299b6eb7
224 224 ```
225 225
226 ### Go
227
228 ```go
229 package main
230
231 import (
232 "crypto/rand"
233 "crypto/rsa"
234 "crypto/sha256"
235 "crypto/x509"
236 "encoding/hex"
237 "encoding/pem"
238 "fmt"
239 "time"
240 )
241
242 func main() {
243 result, err := getCorrespondPath(time.Now().UnixMilli())
244 if err != nil {
245 panic(err)
246 }
247 fmt.Println(result)
248 }
249
250 func getCorrespondPath(ts int64) (string, error) {
251 const publicKeyPEM = `
252 -----BEGIN PUBLIC KEY-----
253 MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDLgd2OAkcGVtoE3ThUREbio0Eg
254 Uc/prcajMKXvkCKFCWhJYJcLkcM2DKKcSeFpD/j6Boy538YXnR6VhcuUJOhH2x71
255 nzPjfdTcqMz7djHum0qSZA0AyCBDABUqCrfNgCiJ00Ra7GmRj+YCK1NJEuewlb40
256 JNrRuoEUXpabUzGB8QIDAQAB
257 -----END PUBLIC KEY-----
258 `
259 pubKeyBlock, _ := pem.Decode([]byte(publicKeyPEM))
260 hash := sha256.New()
261 random := rand.Reader
262 msg := []byte(fmt.Sprintf("refresh_%d", ts))
263 var pub *rsa.PublicKey
264 pubInterface, parseErr := x509.ParsePKIXPublicKey(pubKeyBlock.Bytes)
265 if parseErr != nil {
266 return "", parseErr
267 }
268 pub = pubInterface.(*rsa.PublicKey)
269 encryptedData, encryptErr := rsa.EncryptOAEP(hash, random, pub, msg, nil)
270 if encryptErr != nil {
271 return "", encryptErr
272 }
273 return hex.EncodeToString(encryptedData), nil
274 }
275 ```
276
277 ```
278 97759947aa357ed5d88cf9bf1172737570b7bba2d6788d39006f082b2b25ddf53b581f1f0c61ed8573317485ef525d2789faa25a277b4602a4b9cbf837681093a03e96cb9773a11df4bb1e20f1587180b3e958194de922d7dd94d0a2f0b9b0ef74e426e8041f99b99e7c02407ef4ab38040e61be81e4fdfbdb73461e3a2ad810
279 ```
280
226 281 #### vercel云函数
227 282
228 283 ```bash