需求介紹
相信大家在請求接口的時候,很多時候都是需要傳參的,除了業(yè)務必要的字段外,還有一些恒定不變的字段,包括一些用來編碼的固定字段。這些固定字段的值我們是不能直接寫在項目工程中的。防止被別人反編譯,抓包獲取后,惡意請求,抓取我們的用戶數(shù)據(jù)。
老規(guī)矩,先上圖:
解決方法
這時候我們就可以利用Jni(Java Native Interface)來存儲我們這些常量值,雖然也不是最安全的方式,但是也增加了反編譯和抓包的難度。相對來說還是安全一點的。
具體做法就是:
① 新建一個工程,包名和你需要調用Jni的工程一樣
② 在/src/main/路徑下面新建一個jni目錄,順便新建一個c文件
③ 在c文件中寫入相關代碼
這里針對第三步,該如何存儲重要字段值,具體代碼如下:
#include <jni.h>//格式為:Java_包名_類名_函數(shù)名(方法名)(調用jni的類的包名)JNIEXPORT jstring JNICALLJava_com_anxindeli_anxincow_tools_JniTool_strFromJni(JNIEnv *env, jclass type) { return (*env)->NewStringUTF(env, "anxindeli_cow_ysdss_30ccoaea04e");}調用該so庫的java類目錄必須是

否則會調用不成功的。
JniTool代碼:
public class JniTool { static { System.loadLibrary("str-jni"); } public static native String strFromJni();}最后在Java中調用
JniTool.strFromJni()
就這樣簡單的一句就可以了。。。
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持武林網。
新聞熱點
疑難解答
圖片精選