XuqmGroup-AndroidSDK/sdk-bugcollect/src/main/java/com/xuqm/sdk/bugcollect/Fingerprint.kt

15 行
544 B
Kotlin

package com.xuqm.sdk.bugcollect
object Fingerprint {
fun compute(type: String, message: String, stack: String): String {
val top3 = stack.lines().filter { it.trim().startsWith("at ") }.take(3).joinToString("|")
val normalized = message.replace(Regex("\\b\\d{4,}\\b"), "N")
return sha256("$type:$normalized:$top3")
}
private fun sha256(s: String): String =
java.security.MessageDigest.getInstance("SHA-256")
.digest(s.toByteArray())
.joinToString("") { "%02x".format(it) }
}