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

XFEstudio/bilibili-API-collect

添加了生成CorrespondPath算法的kotlin实现 (#786)

09fe412
whiter <whiterasbk@qq.com>
提交于

代码差异

1 个文件 +49 -0
Modified docs/login/cookie_refresh.md +49 -0
@@ -174,6 +174,55 @@ print(getCorrespondPath(ts))
174 174 47bbd615f333d6a2c597bbb46ad47a6e59752a305a2f545d3ba5d49ca055309347796f80d257613696d36170c57443a0e9dea2b47f83b0b4224d431e46124fadd9a24c8fa468147e8bf2d2501eaacae43310e19bf58fc4a728d80c90b9401afcfc1536ba9a2f6438ea53c0b2652f8b8d01c87355dd5a5da51de998b1a35d519a
175 175 ```
176 176
177 ### Kotlin
178
179 ```kotlin
180 import java.security.KeyFactory
181 import java.security.spec.MGF1ParameterSpec
182 import java.security.spec.X509EncodedKeySpec
183 import java.util.*
184 import javax.crypto.Cipher
185 import javax.crypto.spec.OAEPParameterSpec
186 import javax.crypto.spec.PSource
187
188
189 fun main() {
190 println(getCorrespondPath(System.currentTimeMillis()))
191 }
192
193 fun getCorrespondPath(timestamp: Long): String {
194 val publicKeyPEM = """
195 -----BEGIN PUBLIC KEY-----
196 MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDLgd2OAkcGVtoE3ThUREbio0Eg
197 Uc/prcajMKXvkCKFCWhJYJcLkcM2DKKcSeFpD/j6Boy538YXnR6VhcuUJOhH2x71
198 nzPjfdTcqMz7djHum0qSZA0AyCBDABUqCrfNgCiJ00Ra7GmRj+YCK1NJEuewlb40
199 JNrRuoEUXpabUzGB8QIDAQAB
200 -----END PUBLIC KEY-----
201 """.trimIndent()
202
203 val publicKey = KeyFactory.getInstance("RSA").generatePublic(
204 X509EncodedKeySpec(Base64.getDecoder().decode(publicKeyPEM
205 .replace("-----BEGIN PUBLIC KEY-----", "")
206 .replace("-----END PUBLIC KEY-----", "")
207 .replace("\n", "")
208 .trim()))
209 )
210
211 val cipher = Cipher.getInstance("RSA/ECB/OAEPPadding").apply {
212 init(Cipher.ENCRYPT_MODE,
213 publicKey,
214 OAEPParameterSpec("SHA-256", "MGF1", MGF1ParameterSpec.SHA256, PSource.PSpecified.DEFAULT)
215 )
216 }
217
218 return cipher.doFinal("refresh_$timestamp".toByteArray()).joinToString("") { "%02x".format(it) }
219 }
220 ```
221
222 ```
223 1428cbd14605ae42a0b42e22662cfe51d8e5034eeaffb36a46db46bd2f93216cbfd4d150cca2de44395add7c664b40acf44424ee8d634fc821b909423665a34d18bd7f4e77ea5388a2b612daf875e2fe8df62990e14b64a465898b0707bc1288586b68f9f4f2f20bea5cb1cada296beb8009e91bc8fb57a4b81b8923299b6eb7
224 ```
225
177 226 #### vercel云函数
178 227
179 228 ```bash