大家好。
-
让它成为您要隐藏的文本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)。
- 在你的安卓Java代码写下.当你需要解码版本(这是原始的)写入
encrypted
encrypted
secret
original = decode(encrypted, get_my_keyhash_programmatically() )
就这样。这是有效的,因为原始代码没有显示在java源代码上,也没有解码它。而且,如果黑客想要打印您的解码密钥,他必须更改代码并重新编译,使用自己的密钥库而不是您的密钥库签署.apk,因此无法获得正确的原始密钥 。(“唯一”的一点是是否可以从您的原始.apk中找出)。secret
k1
secret
k1
注: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) {
}