2026-06-16 17:39:23 +08:00
|
|
|
package com.xuqm.sdk.bugcollect
|
2026-06-16 12:10:58 +08:00
|
|
|
|
|
|
|
|
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) }
|
|
|
|
|
}
|