Commit bb2e9d2c by sikang

加入动态口令

parent df48ecd9
...@@ -11,7 +11,7 @@ android { ...@@ -11,7 +11,7 @@ android {
ndk { ndk {
//百度活体 在armeabi平台下性能很差,建议使用armeabi-v7a //百度活体 在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 { 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; ...@@ -4,7 +4,9 @@ import android.content.Context;
import android.content.res.Configuration; import android.content.res.Configuration;
import android.support.multidex.MultiDexApplication; import android.support.multidex.MultiDexApplication;
import signal.JNISignal;
import tech.starwin.LibConfig; import tech.starwin.LibConfig;
import tech.starwin.utils.LogUtils;
import tech.starwin.utils.context_utils.AppLanguageUtils; import tech.starwin.utils.context_utils.AppLanguageUtils;
/** /**
...@@ -31,6 +33,14 @@ public abstract class BaseApplication extends MultiDexApplication { ...@@ -31,6 +33,14 @@ public abstract class BaseApplication extends MultiDexApplication {
super.onCreate(); super.onCreate();
AppLanguageUtils.setLanguage(this, LibConfig.LANGUAGE); AppLanguageUtils.setLanguage(this, LibConfig.LANGUAGE);
LibConfig.initLib(this); 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; ...@@ -3,6 +3,7 @@ package tech.starwin.mvp.ui.activity;
import android.app.Activity; import android.app.Activity;
import android.content.Context; import android.content.Context;
import android.content.Intent; import android.content.Intent;
import android.support.annotation.MainThread;
import android.support.v4.app.FragmentActivity; import android.support.v4.app.FragmentActivity;
import android.view.Gravity; import android.view.Gravity;
import android.view.View; import android.view.View;
...@@ -12,6 +13,7 @@ import android.widget.CheckBox; ...@@ -12,6 +13,7 @@ import android.widget.CheckBox;
import org.greenrobot.eventbus.EventBus; import org.greenrobot.eventbus.EventBus;
import org.greenrobot.eventbus.Subscribe; import org.greenrobot.eventbus.Subscribe;
import org.greenrobot.eventbus.ThreadMode;
import tech.starwin.LibConfig; import tech.starwin.LibConfig;
import tech.starwin.R; import tech.starwin.R;
...@@ -79,7 +81,7 @@ public class AgreementPolicyActivity extends BaseActivity { ...@@ -79,7 +81,7 @@ public class AgreementPolicyActivity extends BaseActivity {
} }
@Subscribe @Subscribe(threadMode = ThreadMode.MAIN)
public void onReceiveLibAction(String actionEnum) { public void onReceiveLibAction(String actionEnum) {
switch (actionEnum) { switch (actionEnum) {
case ActionEnum.GATEWAY_UPDATED: 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