完善了新设备登录(补充了身份字段的解析)

This commit is contained in:
free will committed 2021-11-03 15:24:51 +08:00
1 parent aa66f72290
commit 356b14bfdc
7 files changed
+48 -8

No files matched your search

Binary file not shown.
@@ -22,6 +22,7 @@ import com.pkusz.min_vpn_client.model.OriginalRequest.OriginalRegisterRequest;
import com.pkusz.min_vpn_client.utils.AccountValidatorRegexUtil;
import com.pkusz.min_vpn_client.utils.Base64Util;
import com.pkusz.min_vpn_client.utils.DigestUtilKt;
import com.pkusz.min_vpn_client.utils.IdentityEncryptedUtil;
import com.pkusz.min_vpn_client.utils.KeyManager;
import com.white.countdownbutton.CountDownButton;
@@ -217,10 +218,12 @@ public class RegisterActivity extends MINVpnBaseActivity<RegisterActivityPresent
String pubKey=new String(KeyManager.INSTANCE.getKeyChain().getCurrentIdentity().getPubkey()
.getBytes(), StandardCharsets.UTF_8);
System.out.println("mis register pubkey: "+pubKey);
String PrikeyEncrypted;
String PrikeyEncrypted; // 先按方案对身份信息进行加密,后做Base64编码
try {
PrikeyEncrypted= Base64Helper.Base64BasicEncode(
KeyManager.INSTANCE.getKeyChain().exportSafeBag("").getValue());
IdentityEncryptedUtil.encryptedIdentity(username,password,
KeyManager.INSTANCE.getKeyChain().exportSafeBag("").getValue())
);
} catch (Exception e) {
e.printStackTrace();
return;
@@ -344,8 +344,8 @@ public enum MINVpnSettingAPI {
// MIS通信地址
public String getMisIpAddress(){
return EncryptedSharedPreferenceUtil.get(context,
SP_LOCAL_SETTING_MIS_IP_ADDRESS_TCP,"1.1.1.1");
return EncryptedSharedPreferenceUtil.get(context, // gdcni17
SP_LOCAL_SETTING_MIS_IP_ADDRESS_TCP,"121.15.171.89");
}
public void updateMisIpAddress(String misIP){
@@ -7,6 +7,7 @@ package com.pkusz.min_vpn_client.model;
* @Copyright: MIN-Group;国家重大科技基础设施——未来网络北大实验室;深圳市信息论与未来网络重点实验室
*/
import com.alibaba.fastjson.JSONObject;
import com.pkusz.min_vpn_client.model.OriginalRequest.OriginalRegisterRequest;
import com.pkusz.min_vpn_client.utils.KeyManager;
@@ -19,6 +20,7 @@ import MISConnection.Model.MISGetValidIdentityRequest;
import MISConnection.Model.MISRegisterRequest;
import MISConnection.Model.MISResetPasswordRequest;
import VMSConnection.TCPNet.Message.NetworkResponse;
import VMSConnection.Utils.Base64Helper;
public enum MISRequestAPI {
INSTANCE;
@@ -143,10 +145,18 @@ public enum MISRequestAPI {
}
System.out.println("应答码: " + networkResponse.get().Code);
//todo: 这里应当继续解析data字段中的身份或私钥字段,然后将之返回
// todo: 这里应当继续解析data字段中的身份或私钥字段,然后将之返回
// todo: 注意,需要进行base64解码
// 解析data字段
String resdata=new String(networkResponse.get().Data);
System.out.println("应答信息: "+resdata);
// 取出加密身份(经过了base64编码,请参考RegisterActivity)
JSONObject jsonObject=JSONObject.parseObject(resdata);
String resIdentity=jsonObject.getString("PrikeyEncrypted");
// base64解码
byte[] encryptedIdentity= Base64Helper.Base64BasicDecode(resIdentity);
return networkResponse.get().Data;
return encryptedIdentity;
}
/**
@@ -0,0 +1,25 @@
package com.pkusz.min_vpn_client.utils;
/*
* @Author: Wang Feng
* @Description:
* @Version: 1.0.0
* @Date: 10:35 2021/11/3
* @Copyright: MIN-Group;国家重大科技基础设施——未来网络北大实验室;深圳市信息论与未来网络重点实验室
*/
import org.junit.Test;
import java.util.Arrays;
public class TestIdentityEncrypted {
@Test
public void testEncryptAndDecrypt(){
byte[] encryptedIdentity=IdentityEncryptedUtil.encryptedIdentity(
"wefree","1234","ABCDEFGIdentity".getBytes());
System.out.println("加密结果: "+Arrays.toString(encryptedIdentity));
byte[] rawIdentity=IdentityEncryptedUtil.decryptedIdentity(
"wefree","1234",encryptedIdentity);
System.out.println("原身份: "+ Arrays.toString(rawIdentity));
System.out.println("原身份: "+ new String(rawIdentity));
}
}
@@ -44,5 +44,7 @@ public class TestSM4 {
public void md5(){
String password =DigestUtilKt.encodeToMD5("Xiaowei199876!");
System.out.println(password);
password =DigestUtilKt.encodeToMD5("free@1898");
System.out.println(password);
}
}
@@ -7,8 +7,8 @@ package com.pkusz.min_vpn_client.utils;
* @Copyright: MIN-Group;国家重大科技基础设施——未来网络北大实验室;深圳市信息论与未来网络重点实验室
*/
import com.pkusz.min_vpn_client.model.MINVpnSettingAPI;
import com.pkusz.min_vpn_client.services.MINVpnExternalConnection;
//import com.pkusz.min_vpn_client.model.MINVpnSettingAPI;
//import com.pkusz.min_vpn_client.services.MINVpnExternalConnection;
import org.junit.Test;