Update AnimekaiDecoder.kt
This commit is contained in:
parent
ac7c7fed85
commit
619df77a1e
1 changed files with 4 additions and 27 deletions
|
@ -3,6 +3,7 @@ package eu.kanade.tachiyomi.animeextension.en.animekai
|
||||||
import android.util.Base64
|
import android.util.Base64
|
||||||
import java.net.URLEncoder
|
import java.net.URLEncoder
|
||||||
import java.nio.charset.StandardCharsets
|
import java.nio.charset.StandardCharsets
|
||||||
|
import java.security.MessageDigest
|
||||||
import javax.crypto.Cipher
|
import javax.crypto.Cipher
|
||||||
import javax.crypto.spec.IvParameterSpec
|
import javax.crypto.spec.IvParameterSpec
|
||||||
import javax.crypto.spec.SecretKeySpec
|
import javax.crypto.spec.SecretKeySpec
|
||||||
|
@ -10,8 +11,8 @@ import javax.crypto.spec.SecretKeySpec
|
||||||
class AnimekaiDecoder {
|
class AnimekaiDecoder {
|
||||||
|
|
||||||
fun generateToken(id: String): String {
|
fun generateToken(id: String): String {
|
||||||
val timestamp = (System.currentTimeMillis() / 1000).toString()
|
val time = (System.currentTimeMillis() / 1000).toString()
|
||||||
val base = "$id|$timestamp"
|
val base = "$id|$time"
|
||||||
val encrypted = encrypt(base)
|
val encrypted = encrypt(base)
|
||||||
return URLEncoder.encode(encrypted, StandardCharsets.UTF_8.toString())
|
return URLEncoder.encode(encrypted, StandardCharsets.UTF_8.toString())
|
||||||
}
|
}
|
||||||
|
@ -20,30 +21,6 @@ class AnimekaiDecoder {
|
||||||
return decrypt(data)
|
return decrypt(data)
|
||||||
}
|
}
|
||||||
|
|
||||||
fun decode(base64Data: String, steps: List<List<String>>): String {
|
|
||||||
var result = base64Data
|
|
||||||
for (step in steps) {
|
|
||||||
when (step[0]) {
|
|
||||||
"replace" -> {
|
|
||||||
result = result.replace(step[1], step[2])
|
|
||||||
}
|
|
||||||
"reverse" -> {
|
|
||||||
result = result.reversed()
|
|
||||||
}
|
|
||||||
"base64" -> {
|
|
||||||
result = decodeBase64(result).toString(StandardCharsets.UTF_8)
|
|
||||||
}
|
|
||||||
"xor" -> {
|
|
||||||
val key = step[1].toByteArray(StandardCharsets.UTF_8)
|
|
||||||
val bytes = decodeBase64(result)
|
|
||||||
val xored = bytes.mapIndexed { i, b -> b xor key[i % key.size] }.toByteArray()
|
|
||||||
result = xored.toString(StandardCharsets.UTF_8)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return result
|
|
||||||
}
|
|
||||||
|
|
||||||
private fun encrypt(text: String): String {
|
private fun encrypt(text: String): String {
|
||||||
val keyBytes = decodeBase64(SECRET)
|
val keyBytes = decodeBase64(SECRET)
|
||||||
val ivSpec = IvParameterSpec(IV.toByteArray(StandardCharsets.UTF_8))
|
val ivSpec = IvParameterSpec(IV.toByteArray(StandardCharsets.UTF_8))
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue