【发布时间】:2016-11-10 07:08:34
【问题描述】:
我正在使用 JNI 来获取 apk 的签名,而且我做得很好。当我第一次从 java 调用这个方法时,我得到了确切的值。再次调用它,我得到具有精确值的附加值(例如 1234456123456)。 PFB 我正在使用的代码
char* getSignatureMd5(JNIEnv* env, jobject obj)
{
char* sign = loadSignature(env, obj);
MD5_CTX context = { 0 };
MD5Init(&context);
MD5Update(&context, (unsigned char*)sign, strlen(sign));
unsigned char dest[16] = { 0 };
MD5Final(dest, &context);
int i;
static char destination[32]={0};
for (i = 0; i < 16; i++) {
sprintf(destination, "%s%02x", destination, dest[i]);
}
return destination;
}
getToken JNI 方法
JNIEXPORT jstring JNICALL Java_com_sign_signaturecapturesbi_MyAdapter_getToken(JNIEnv *env, jobject obj)
{
char* signValue = getSignatureMd5(env, obj);
__android_log_print(ANDROID_LOG_VERBOSE, "MyApp", "signValue %s", signValue);
return (*env)->NewStringUTF(env, signValue);
}
【问题讨论】:
标签: android c android-ndk java-native-interface