こんにちは、みんな。
secret非表示にしたいテキストにしましょう
debug/release.keystore のキーハッシュを見つけます。k1この鍵としましょう。
(ツール keytool+openssl: を使用keytool -exportcert -alias androiddebugkey -keystore ~/.android/debug.keystore | openssl sha1 -binary | openssl base64 )
ツール(Androidコードの外部)を使用して暗号化secretしますk1
encrypted = encode (secret, k1)
(例: https://jwt.io、Java の場合: https://github.com/jwtk/jjwt )。
- あなたのAndroid Javaコードに書き留めてください
encrypted。encryptedのデコードされたバージョン(これは元の)が必要な場合は、secret書き込みます
original = decode(encrypted, get_my_keyhash_programmatically() )
それで全部です。これsecretは、元のコードが Java ソース コードに表示されておらず、k1デコードもされていないためです。また、ハッカーが復号化されたシークレットを出力したい場合は、コードを変更して再コンパイルしなければならず、.apk に自分のものではない独自のキーストアで署名する必要があるため、正しい元の .apk を取得できません
secret。(「唯一の」ポイントはk1、元の.apkから把握できるかどうかです)。
注: get_my_keyhash_programmatically():
try {
PackageInfo info = getPackageManager().getPackageInfo(
"el nombre de su paquete por ejemplo com.tarea.u8",
PackageManager.GET_SIGNATURES);
for (Signature signature : info.signatures) {
MessageDigest md = MessageDigest.getInstance("SHA");
md.update(signature.toByteArray());
Log.d("KeyHash:", Base64.encodeToString(md.digest(), Base64.DEFAULT));
}
} catch (PackageManager.NameNotFoundException e) {
} catch (NoSuchAlgorithmException e) {
}