[Modify]登录功能修改
This commit is contained in:
Binary file not shown.
Binary file not shown.
@@ -6,7 +6,6 @@ import android.text.TextUtils
|
||||
import android.view.MotionEvent
|
||||
import android.view.View
|
||||
import android.widget.EditText
|
||||
import com.coorchice.library.utils.LogUtils
|
||||
import com.netease.nim.uikit.StatusBarUtil
|
||||
import com.trello.rxlifecycle3.android.ActivityEvent
|
||||
import com.yizhuan.erban.MainActivity
|
||||
@@ -93,8 +92,9 @@ class LoginPhoneActivity : BaseViewBindingActivity<ActivityLoginPhoneBinding>(),
|
||||
|
||||
override fun onError(e: Throwable) {
|
||||
dialogManager.dismissDialog()
|
||||
toast(e.message)
|
||||
LogUtils.e(e.message)
|
||||
if(e.message != null) {
|
||||
toast(e.message)
|
||||
}
|
||||
}
|
||||
|
||||
})
|
||||
|
||||
@@ -7,6 +7,7 @@ import android.text.style.ForegroundColorSpan;
|
||||
|
||||
import androidx.core.content.ContextCompat;
|
||||
|
||||
import com.appsflyer.internal.components.network.http.exceptions.HttpException;
|
||||
import com.yizhuan.erban.R;
|
||||
import com.yizhuan.erban.base.BaseActivity;
|
||||
import com.yizhuan.xchat_android_core.auth.AuthModel;
|
||||
@@ -17,6 +18,8 @@ import com.yizhuan.xchat_android_library.net.rxnet.exception.ExceptionHandle;
|
||||
import com.yizhuan.xchat_android_library.utils.ResUtil;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.net.SocketException;
|
||||
import java.net.SocketTimeoutException;
|
||||
import java.text.SimpleDateFormat;
|
||||
import java.util.Date;
|
||||
import java.util.Locale;
|
||||
@@ -38,7 +41,9 @@ public class LogoutHelper {
|
||||
eventLabel.append(msg);
|
||||
}
|
||||
}
|
||||
if (e instanceof BanAccountException) {
|
||||
if (e instanceof SocketTimeoutException || e instanceof SocketException || e instanceof HttpException) {
|
||||
activity.toast(ResUtil.getString(R.string.login_helper_logouthelper_013));
|
||||
} else if (e instanceof BanAccountException) {
|
||||
BanAccountException exception = (BanAccountException) e;
|
||||
String text = ResUtil.getString(R.string.login_helper_logouthelper_02) + exception.getMessage() + ResUtil.getString(R.string.login_helper_logouthelper_03);
|
||||
int start = text.length();
|
||||
|
||||
@@ -2,11 +2,9 @@
|
||||
<network-security-config>
|
||||
|
||||
<base-config cleartextTrafficPermitted="true">
|
||||
<debug-overrides>
|
||||
<trust-anchors>
|
||||
<certificates src="system" />
|
||||
</trust-anchors>
|
||||
</debug-overrides>
|
||||
<trust-anchors>
|
||||
<certificates src="system" />
|
||||
</trust-anchors>
|
||||
</base-config>
|
||||
|
||||
<domain-config cleartextTrafficPermitted="true">
|
||||
|
||||
@@ -5,6 +5,7 @@ import com.google.gson.JsonParseException
|
||||
import org.json.JSONException
|
||||
import retrofit2.HttpException
|
||||
import java.net.ConnectException
|
||||
import java.net.SocketException
|
||||
import java.net.SocketTimeoutException
|
||||
import java.net.UnknownHostException
|
||||
import java.text.ParseException
|
||||
@@ -21,7 +22,7 @@ class ExceptionHandle {
|
||||
fun handleException(e: Throwable): String {
|
||||
e.printStackTrace()
|
||||
when (e) {
|
||||
is SocketTimeoutException, is ConnectException, is HttpException -> { //均视为网络错误
|
||||
is SocketException, is SocketTimeoutException, is HttpException -> { //均视为网络错误
|
||||
Log.e(TAG, "網絡連接異常: " + e.message)
|
||||
errorMsg = "網絡異常,請檢查您的網絡再試~"
|
||||
}
|
||||
|
||||
@@ -1,19 +1,83 @@
|
||||
package com.yizhuan.xchat_android_library.utils.codec;
|
||||
|
||||
import android.util.Base64;
|
||||
|
||||
import com.yizhuan.xchat_android_library.utils.StringUtils;
|
||||
|
||||
import java.nio.charset.Charset;
|
||||
import java.security.Key;
|
||||
import java.util.regex.Matcher;
|
||||
import java.util.regex.Pattern;
|
||||
|
||||
import javax.crypto.Cipher;
|
||||
import javax.crypto.SecretKey;
|
||||
import javax.crypto.SecretKeyFactory;
|
||||
import javax.crypto.spec.DESKeySpec;
|
||||
|
||||
//import sun.misc.BASE64Decoder;
|
||||
//import sun.misc.BASE64Encoder;
|
||||
|
||||
|
||||
public class DESUtils {
|
||||
|
||||
static {
|
||||
System.loadLibrary("peko-common");
|
||||
// static BASE64Decoder decoder = new BASE64Decoder();
|
||||
// static BASE64Encoder encoder = new BASE64Encoder();
|
||||
|
||||
static String DES = "DES";
|
||||
static String ENCODE = "UTF-8";//保持平台兼容统一使用utf-8
|
||||
|
||||
//des 加密
|
||||
private static byte[] encryptByteDES(byte[] byteD, String strKey) throws Exception {
|
||||
return doEncrypt(byteD, getKey(strKey), DES);
|
||||
}
|
||||
|
||||
public static String DESAndBase64Encrypt(String dataToEncrypt) {
|
||||
return replaceBlank(stringFromJNI(replaceBlank(dataToEncrypt)));
|
||||
//des 解密
|
||||
private static byte[] decryptByteDES(byte[] byteD, String strKey) throws Exception {
|
||||
return doDecrypt(byteD, getKey(strKey), DES);
|
||||
}
|
||||
|
||||
public static SecretKey getKey(String strKey) throws Exception {
|
||||
DESKeySpec desKeySpec = new DESKeySpec(strKey.getBytes());
|
||||
SecretKeyFactory keyFactory = SecretKeyFactory.getInstance(DES);
|
||||
SecretKey sk = keyFactory.generateSecret(desKeySpec);
|
||||
return sk;
|
||||
}
|
||||
|
||||
|
||||
public static void main(String[] args) throws Exception {
|
||||
|
||||
String text = "admin";
|
||||
// String pwd = "NJD783iSDK0d9fjd98KKDf9O";
|
||||
String pwd = "1ea53d260ecf11e7b56e00163e046a26";
|
||||
//客户端加密
|
||||
// String data = DESAndBase64Encrypt(text, pwd);
|
||||
// System.out.println(ResUtil.getString(R.string.utils_codec_desutils_01) + URLEncoder.encode(data, "UTF-8"));
|
||||
|
||||
//服务端解密
|
||||
// String textDecrypt = DESAndBase64Decrypt(data, pwd);
|
||||
// System.out.println(ResUtil.getString(R.string.utils_codec_desutils_02) + text);
|
||||
// System.out.println(ResUtil.getString(R.string.utils_codec_desutils_03) + textDecrypt);
|
||||
|
||||
|
||||
// byte[] bytes = text.getBytes();
|
||||
// byte[] encode = Base64.encode(bytes,Base64.DEFAULT);
|
||||
|
||||
}
|
||||
|
||||
//客户端加密
|
||||
public static String DESAndBase64Encrypt(String dataToEncrypt, String secretKey) throws Exception {
|
||||
byte[] encryptData = encryptByteDES(dataToEncrypt.getBytes(ENCODE), secretKey);//这里加密前不要处理加密数据的空格换行等事情
|
||||
byte[] encode = Base64.encode(encryptData, Base64.DEFAULT);
|
||||
String dataBase64 = StringUtils.toEncodedString(encode, Charset.defaultCharset());
|
||||
return replaceBlank(dataBase64);
|
||||
}
|
||||
|
||||
//客户端加密
|
||||
public static String DESAndBase64Encrypt(String dataToEncypt) throws Exception {
|
||||
byte[] encryptData = encryptByteDES(replaceBlank(dataToEncypt).getBytes(ENCODE), "1ea53d260ecf11e7b56e00163e046a26");
|
||||
byte[] encode = Base64.encode(encryptData, Base64.DEFAULT);
|
||||
String dataBase64 = StringUtils.toEncodedString(encode, Charset.defaultCharset());
|
||||
return replaceBlank(dataBase64);
|
||||
}
|
||||
|
||||
public static String DESAndBase64(String psw) {
|
||||
@@ -36,13 +100,42 @@ public class DESUtils {
|
||||
return dest;
|
||||
}
|
||||
|
||||
public static String DESAndBase64Decrypt(String dataBase64) {
|
||||
//服务端解密
|
||||
public static String DESAndBase64Decrypt(String dataBase64) throws Exception {
|
||||
if (StringUtils.isEmpty(dataBase64)) return null;
|
||||
return stringFromJNI2(dataBase64);
|
||||
byte[] encryptedData = Base64.decode(dataBase64, Base64.DEFAULT);
|
||||
byte[] decryptedData = decryptByteDES(encryptedData, "1ea53d260ecf11e7b56e00163e046a26");
|
||||
String textDecrypt = new String(decryptedData, ENCODE);
|
||||
return textDecrypt;
|
||||
}
|
||||
|
||||
public static native String stringFromJNI(String str);
|
||||
|
||||
public static native String stringFromJNI2(String str);
|
||||
/**
|
||||
* 执行加密操作
|
||||
*
|
||||
* @param data 待操作数据
|
||||
* @param key Key
|
||||
* @param type 算法 RSA or DES
|
||||
* @return
|
||||
* @throws Exception
|
||||
*/
|
||||
private static byte[] doEncrypt(byte[] data, Key key, String type) throws Exception {
|
||||
Cipher cipher = Cipher.getInstance(type);
|
||||
cipher.init(Cipher.ENCRYPT_MODE, key);
|
||||
return cipher.doFinal(data);
|
||||
}
|
||||
|
||||
/**
|
||||
* 执行解密操作
|
||||
*
|
||||
* @param data 待操作数据
|
||||
* @param key Key
|
||||
* @param type 算法 RSA or DES
|
||||
* @return
|
||||
* @throws Exception
|
||||
*/
|
||||
private static byte[] doDecrypt(byte[] data, Key key, String type) throws Exception {
|
||||
Cipher cipher = Cipher.getInstance(type);
|
||||
cipher.init(Cipher.DECRYPT_MODE, key);
|
||||
return cipher.doFinal(data);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user