区块链调试

This commit is contained in:
zhangqinbin
2021-09-02 15:46:38 +08:00
parent 950800d8aa
commit 6edd9a309e
3 changed files with 70 additions and 52 deletions

View File

@ -10,6 +10,7 @@ import com.chinaunicom.mall.ebtp.common.base.service.IBaseCacheUserService;
import com.chinaunicom.mall.ebtp.common.base.service.impl.BaseServiceImpl;
import com.chinaunicom.mall.ebtp.common.constant.CommonConstants;
import com.chinaunicom.mall.ebtp.common.crypto.service.CrypServiceImpl;
import com.chinaunicom.mall.ebtp.common.crypto.tenderfee.test;
import com.chinaunicom.mall.ebtp.common.exception.common.CommonExceptionEnum;
import com.chinaunicom.mall.ebtp.common.uniBss.constant.UniBssConstant;
import com.chinaunicom.mall.ebtp.common.uniBss.entity.*;
@ -23,9 +24,11 @@ import com.chinaunicom.mall.ebtp.extend.crypconfigure.entity.CrypConfigure;
import com.chinaunicom.mall.ebtp.extend.crypconfigure.service.ICrypConfigureService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.core.io.ClassPathResource;
import org.springframework.stereotype.Service;
import java.io.UnsupportedEncodingException;
import java.net.URL;
import java.text.SimpleDateFormat;
import java.util.*;
@ -45,6 +48,12 @@ public class CrypConfigureServiceImpl extends BaseServiceImpl<CrypConfigureMappe
private @Autowired
IBaseCacheUserService service;
// 私钥文件路径 - 加密
private static String PEM_PATH = "admin_certPrivateNew.pem";
// 证书文件路径 - 解密
private static String CRT_PATH = "adminNew.crt";
@Value("${mconfig.bss.app-id}")
private String app_id;
@Value("${mconfig.bss.app-secret}")
@ -131,19 +140,9 @@ public class CrypConfigureServiceImpl extends BaseServiceImpl<CrypConfigureMappe
* @return
*/
private String getSignValue(Object object){
//查询
LambdaQueryWrapper<CrypConfigure> query = Wrappers.lambdaQuery();
query.eq(CrypConfigure::getState,"1")
.eq(CrypConfigure::getDeleteFlag, CommonConstants.STATUS_NORMAL)
.eq(CrypConfigure::getType,"1")
.eq(CrypConfigure::getCCode,"pem_key");
List<CrypConfigure> list = this.list(query);
CrypConfigure crypConfigure = list.get(0);
log.debug("秘钥:"+crypConfigure.getCValue());
log.debug("加密参数:"+JSONArray.toJSONString(object));
String signValue = CrypServiceImpl.signObject2(object,crypConfigure.getCValue());
URL pem = CrypConfigureServiceImpl.class.getClassLoader().getResource(PEM_PATH);
String signValue = CrypServiceImpl.signObject(object,pem.getPath());
log.debug("加密结果:"+signValue);
return signValue;
}
@ -178,7 +177,11 @@ public class CrypConfigureServiceImpl extends BaseServiceImpl<CrypConfigureMappe
reqhead.setSystemName("bidding");
reqhead.setUserId(service.getCacheUser().getUserId()!=null?service.getCacheUser().getUserId():"system");
reqhead.setUserName(service.getCacheUser().getFullName()!=null?service.getCacheUser().getFullName():"电子招投标");
reqhead.setAccessToken(AccessToken.tokenCreate("bidding"));
//测试写死
String accessToken = "MQjkzVoYoSHe6r/3uZm0MV/TLx+n8PS9ivfPhgY4bWmh+8DVxj7vTC15xbBkuV8oujD3XBZPP7PhcWag9UU5IzsUBT7PSwPhqi/fUqa+iAWhCWpvyihG/23BAY3rJyaoa3OdMNSnIh8woPDCJQTzCTpNtg0toKwdWnuc2mig7vI0Lm9lePvrx3XxFLSaFr+jB5C3qnAX4uUBioZzithSjtra1QUK6S1cb9DCmpj6NRI=";
//String accessToken = AccessToken.tokenCreate("bidding");
reqhead.setAccessToken(accessToken);
log.debug("业务参数封装前:"+map);
UniCrpyReq req = new UniCrpyReq();
@ -202,20 +205,10 @@ public class CrypConfigureServiceImpl extends BaseServiceImpl<CrypConfigureMappe
public Boolean verifyObject(CrypBean bean){
try{
//查询
LambdaQueryWrapper<CrypConfigure> query = Wrappers.lambdaQuery();
query.eq(CrypConfigure::getState,"1")
.eq(CrypConfigure::getDeleteFlag, CommonConstants.STATUS_NORMAL)
.eq(CrypConfigure::getType,"1")
.eq(CrypConfigure::getCCode,"crt_key");
List<CrypConfigure> list = this.list(query);
CrypConfigure crypConfigure = list.get(0);
log.debug("解密秘钥:"+crypConfigure.getCValue());
log.debug("解密参数:"+JSONArray.toJSONString(bean.getObject()));
Boolean b = CrypServiceImpl.verifyValue(bean.getSign(),
bean.getObject(),
crypConfigure.getCValue());
URL crt = CrypConfigureServiceImpl.class.getClassLoader().getResource(CRT_PATH);
Boolean b = CrypServiceImpl.verifyObject(bean.getSign(),bean.getObject(),crt.getPath());
return b;
}catch (Exception e){
@ -224,37 +217,41 @@ public class CrypConfigureServiceImpl extends BaseServiceImpl<CrypConfigureMappe
return false;
}
private static final String CRT_PATH = "D:\\工作\\联通\\代码\\3.0\\区块链\\数据签名生成程序\\adminNew.crt";
public static void main(String[] args) throws ClassNotFoundException, IllegalAccessException, InstantiationException, UnsupportedEncodingException {
String token = AccessToken.tokenCreate("123");
System.out.println(token);
// example of HashMap entity, treeMap can also work out,
// but LinkedHashMap is NOT supported
Map<String,Object> mapb= new HashMap<>();
// Map<String,Object> mapb= new HashMap<>();
//
// Map<String,String> map = new HashMap<>(1);
// map.put("TENDERER_ID","8533");
// map.put("SHOPPINGCART_ID","L3307");
// map.put("AMOUNT","1000");
// map.put("TP_ID","L3307A");
// map.put("SECTION_ID","1111");
//
// List list = new ArrayList();
// list.add(map);
// //mapb.put("BODY_LIST",list);
//
// CrypConfigureServiceImpl crypService = new CrypConfigureServiceImpl();
// CrypBean bean = crypService.signObject(list);
// System.out.println(bean);
Map<String,String> map = new HashMap<>(1);
map.put("TENDERER_ID","8533");
map.put("SHOPPINGCART_ID","L3307");
map.put("AMOUNT","1000");
map.put("TP_ID","L3307A");
map.put("SECTION_ID","1111");
List list = new ArrayList();
list.add(map);
//mapb.put("BODY_LIST",list);
System.out.println(mapb);
String pkey = "-----BEGIN PRIVATE KEY-----\n" +
"MIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQgfb0OcgWWFJGaOmVI\n" +
"LxEpIRTsICs0ssgJZqpuZQUhTIGhRANCAAQ8dPtVEfZfm2wXdqoqYpColaJ4MxiJ\n" +
"rFoUUMepAwuIQLaSZIH1+YbUkr/P+ybC1cbiBMrZjCxiAimk7dLxmUkx\n" +
"-----END PRIVATE KEY-----";
//"MEUCIQC0TNG+JlFa2kCwQOdYer69cA4psgDoK9ulqdKyK5BEwQIgFOlVofB+xDVOCSuj7t2Pp3z0fyyiuXPy5dRMsOMoh3U=";
String signature = CrypServiceImpl.signObject2(list,pkey);
System.out.println("signature of Map: "+signature);
boolean isOk = CrypServiceImpl.verifyObject(signature,list,CRT_PATH);
System.out.println("verify result of Map: "+ isOk);
// System.out.println(mapb);
//
// String pkey = "-----BEGIN PRIVATE KEY-----\n" +
// "MIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQgfb0OcgWWFJGaOmVI\n" +
// "LxEpIRTsICs0ssgJZqpuZQUhTIGhRANCAAQ8dPtVEfZfm2wXdqoqYpColaJ4MxiJ\n" +
// "rFoUUMepAwuIQLaSZIH1+YbUkr/P+ybC1cbiBMrZjCxiAimk7dLxmUkx\n" +
// "-----END PRIVATE KEY-----";
// //"MEUCIQC0TNG+JlFa2kCwQOdYer69cA4psgDoK9ulqdKyK5BEwQIgFOlVofB+xDVOCSuj7t2Pp3z0fyyiuXPy5dRMsOMoh3U=";
// String signature = CrypServiceImpl.signObject2(list,pkey);
// System.out.println("signature of Map: "+signature);
// boolean isOk = CrypServiceImpl.verifyObject(signature,list,CRT_PATH);
// System.out.println("verify result of Map: "+ isOk);
}
}

View File

@ -0,0 +1,16 @@
-----BEGIN CERTIFICATE-----
MIICgjCCAimgAwIBAgIUYP62P06sD2LqFyrCW8gDB4EvOmowCgYIKoZIzj0EAwIw
ZzELMAkGA1UEBhMCQ04xETAPBgNVBAgTCFNoYW5Eb25nMQ4wDAYDVQQHEwVKaU5h
bjEYMBYGA1UEChMPYWRtaW50MDgxMmFvcmczMRswGQYDVQQDExJjYS5hZG1pbnQw
ODEyYW9yZzMwHhcNMjEwODMxMDYzMDAwWhcNMjIwODMxMDYzNTAwWjAzMRwwDQYD
VQQLEwZjbGllbnQwCwYDVQQLEwRvcmczMRMwEQYDVQQDDAphZG1pbkBvcmczMFkw
EwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEPHT7VRH2X5tsF3aqKmKQqJWieDMYiaxa
FFDHqQMLiEC2kmSB9fmG1JK/z/smwtXG4gTK2YwsYgIppO3S8ZlJMaOB5jCB4zAO
BgNVHQ8BAf8EBAMCB4AwDAYDVR0TAQH/BAIwADAdBgNVHQ4EFgQUxhcLh6TJkZkr
4aj4/P9YvfuSWGwwKwYDVR0jBCQwIoAg39Z8xQV3+pq1DBYm7uNMvAqFNpkbsvGe
LZX537X16UEwFAYDVR0RBA0wC4IJSlpaSEpTLTcyMGEGCCoDBAUGBwgBBFV7ImF0
dHJzIjp7ImhmLkFmZmlsaWF0aW9uIjoib3JnMyIsImhmLkVucm9sbG1lbnRJRCI6
ImFkbWluQG9yZzMiLCJoZi5UeXBlIjoiY2xpZW50In19MAoGCCqGSM49BAMCA0cA
MEQCIHqfq7vUlpdZUzV/qOeIvmLpom4qKzVuBmp2Bkl5M0LNAiAl7Y9a6TiCMx9/
0XMXsg5XS07GeLH9e94vY2y5GN/QZA==
-----END CERTIFICATE-----

View File

@ -0,0 +1,5 @@
-----BEGIN PRIVATE KEY-----
MIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQgfb0OcgWWFJGaOmVI
LxEpIRTsICs0ssgJZqpuZQUhTIGhRANCAAQ8dPtVEfZfm2wXdqoqYpColaJ4MxiJ
rFoUUMepAwuIQLaSZIH1+YbUkr/P+ybC1cbiBMrZjCxiAimk7dLxmUkx
-----END PRIVATE KEY-----