Commit bb2e9d2c by sikang

加入动态口令

parent df48ecd9
......@@ -11,7 +11,7 @@ android {
ndk {
//百度活体 在armeabi平台下性能很差,建议使用armeabi-v7a
abiFilters 'armeabi-v7a'//,'armeabi' //, 'x86', 'armeabi-v7a', 'x86_64', 'arm64-v8a'
abiFilters 'armeabi' //,'armeabi-v7a'//, 'x86', 'armeabi-v7a', 'x86_64', 'arm64-v8a'
}
}
buildTypes {
......
package signal;
import android.content.Context;
import android.content.pm.PackageInfo;
import android.content.pm.PackageManager;
import android.content.pm.Signature;
/**
* Created by SiKang on 2018/12/28.
*/
public class JNISignal {
/**
* 加载so库
* */
static {
System.loadLibrary("signal");
}
/**
* 获取暗号
* */
public static native String getSignal(Context context);
/**
* 获取当前签名的 hashCode
* */
public static int getKeyStoreHashCode(Context context) {
try {
PackageInfo packageInfo = context.getPackageManager().getPackageInfo(
context.getPackageName(), PackageManager.GET_SIGNATURES);
Signature[] signs = packageInfo.signatures;
Signature sign = signs[0];
return sign.hashCode();
} catch (Exception e) {
e.printStackTrace();
}
return 0;
}
}
......@@ -4,7 +4,9 @@ import android.content.Context;
import android.content.res.Configuration;
import android.support.multidex.MultiDexApplication;
import signal.JNISignal;
import tech.starwin.LibConfig;
import tech.starwin.utils.LogUtils;
import tech.starwin.utils.context_utils.AppLanguageUtils;
/**
......@@ -31,6 +33,14 @@ public abstract class BaseApplication extends MultiDexApplication {
super.onCreate();
AppLanguageUtils.setLanguage(this, LibConfig.LANGUAGE);
LibConfig.initLib(this);
//已签名的APP,这里会输出当前签名的 hashCode 值,将 hashCode 在服务端备份(更换签名时要同时更新备份)
LogUtils.d("Signal_Log", "hashCode: " + JNISignal.getKeyStoreHashCode(this));
/*
* 获取暗号,每一个 http 请求,都在 header 中加入此暗号
* 服务端收到请求,根据header中的包名和已备份的hashCode,用同样的方式生成暗号,然后和 Header 中收到的暗号进行对比,如果暗号不一样,则拒绝返回数据
* */
LogUtils.d("Signal_Log", "signal: " + JNISignal.getSignal(this));
}
/**
......
......@@ -3,6 +3,7 @@ package tech.starwin.mvp.ui.activity;
import android.app.Activity;
import android.content.Context;
import android.content.Intent;
import android.support.annotation.MainThread;
import android.support.v4.app.FragmentActivity;
import android.view.Gravity;
import android.view.View;
......@@ -12,6 +13,7 @@ import android.widget.CheckBox;
import org.greenrobot.eventbus.EventBus;
import org.greenrobot.eventbus.Subscribe;
import org.greenrobot.eventbus.ThreadMode;
import tech.starwin.LibConfig;
import tech.starwin.R;
......@@ -79,7 +81,7 @@ public class AgreementPolicyActivity extends BaseActivity {
}
@Subscribe
@Subscribe(threadMode = ThreadMode.MAIN)
public void onReceiveLibAction(String actionEnum) {
switch (actionEnum) {
case ActionEnum.GATEWAY_UPDATED:
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment