Skip to content

Instantly share code, notes, and snippets.

@Atsumi3
Last active February 1, 2024 09:18
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save Atsumi3/1d8d73c8548694ec01ba1838dfc4b9ff to your computer and use it in GitHub Desktop.
Save Atsumi3/1d8d73c8548694ec01ba1838dfc4b9ff to your computer and use it in GitHub Desktop.
AndroidでアプリのSHA1,SHA256を取得するスニペット
@Suppress("DEPRECATION")
@SuppressLint("PackageManagerGetSignatures")
fun getSignature(algorithm: String): String {
fun byteArrayToReadableString(array: ByteArray, delimiter: String = ":"): String {
return array.joinToString(delimiter) {
var str = Integer.toHexString(it.toInt())
str = (if (str.length == 1) "0$str" else str).replace("ff", "")
if (str.isEmpty()) str = "FF"
str.uppercase(Locale.getDefault())
}
}
val signature = packageManager.getPackageInfo(
packageName,
PackageManager.GET_SIGNATURES
).signatures?.singleOrNull() ?: return "null"
val md = MessageDigest.getInstance(algorithm)
md.update(signature.toByteArray())
return byteArrayToReadableString(md.digest())
}
// 利用例
println("SHA1 ${getSignature("SHA1")}")
println("SHA256 ${getSignature("SHA-256")}")
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment