Obtenir SHA1 via la programmation
C'est quelque chose comme mon application de rapport signinig:
Variant: release
Config: config
Store: C:\Users\Superman\Desktop\web.jks
Alias: web
MD5: 8C:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00
SHA1: D3:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00
SHA-256: A0:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00
Valid until: Sunday, December 4, 2044
Existe-t-il un moyen d'obtenir ce code (MD5, SHA1, SHA-256) via la programmation Android? Je veux enregistrer l'un d'eux sur le serveur. Lors de l'utilisation de l'application, ces valeurs doivent être vérifiées avec les valeurs stockées sur le serveur, si ce n'est pas égal, quittez et tuez le processus (je le fais pour empêcher mon application de se fissurer)
Réponses
Cette réponse est tirée d' une autre réponse Découvrez cette fonction
// key like: SHA1, SHA256, MD5.
private fun get(key: String, info: PackageInfo) {
try {
for (signature in info.signatures) {
val md: MessageDigest = MessageDigest.getInstance(key)
md.update(signature.toByteArray())
val digest: ByteArray = md.digest()
val toRet = StringBuilder()
for (i in digest.indices) {
if (i != 0) toRet.append(":")
val b: Byte = digest[i] and 0xff.toByte()
val hex = Integer.toHexString(b.toInt())
if (hex.length == 1) toRet.append("0")
toRet.append(hex)
}
Log.d(TAG, "key: $key $toRet")
}
} catch (e1: PackageManager.NameNotFoundException) {
Log.e(TAG, e1.toString())
} catch (e: NoSuchAlgorithmException) {
Log.e(TAG, e.toString())
} catch (e: Exception) {
Log.e(TAG, e.toString())
}
}
Pour l'utiliser, appelez-le comme ça
get("SHA1", packageManager.getPackageInfo(packageName, PackageManager.GET_SIGNATURES))
Il semble que vous recherchiez une vérification de version. Si tel est le cas, vous ne comprenez pas le but du hachage. Le hachage sert à vérifier l'intégrité des données et non à vérifier. Cela ne fait aucune différence de sécurité en utilisant le hachage ou non, si vous téléchargez simplement la valeur et la vérifiez sur le serveur.