6c4cf106b0fd874f4cfc721a4921d4ad14ad0c1a.svn-base 1.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849
  1. package org.jeecg;
  2. import com.alibaba.fastjson.JSONObject;
  3. import org.jeecg.common.util.security.SecurityTools;
  4. import org.jeecg.common.util.security.entity.*;
  5. import org.junit.Test;
  6. public class SecurityToolsTest {
  7. @Test
  8. public void Test(){
  9. MyKeyPair mkeyPair = SecurityTools.generateKeyPair();
  10. JSONObject msg = new JSONObject();
  11. msg.put("name", "党政辉");
  12. msg.put("age", 50);
  13. JSONObject identity = new JSONObject();
  14. identity.put("type", "01");
  15. identity.put("no", "210882165896524512");
  16. msg.put("identity", identity);
  17. // 签名加密部分
  18. SecuritySignReq signReq = new SecuritySignReq();
  19. // data为要加密的报文字符串
  20. signReq.setData(msg.toString());
  21. // 为rsa私钥
  22. signReq.setPrikey(mkeyPair.getPriKey());
  23. // 调用签名方法
  24. SecuritySignResp sign = SecurityTools.sign(signReq);
  25. // 打印出来加密数据
  26. // signData为签名数据
  27. // data为aes加密数据
  28. // asekey为ras加密过的aeskey
  29. System.out.println(JSONObject.toJSON(sign));
  30. // 验签解密部分
  31. SecurityReq req = new SecurityReq();
  32. //对方传过来的数据一一对应
  33. req.setAesKey(sign.getAesKey());
  34. req.setData(sign.getData());
  35. req.setSignData(sign.getSignData());
  36. //我们的公钥
  37. req.setPubKey(mkeyPair.getPubKey());
  38. //验签方法调用
  39. SecurityResp securityResp = SecurityTools.valid(req);
  40. //解密报文data为解密报文
  41. //sucess 为验签成功失败标志 true代码验签成功,false代表失败
  42. System.out.println(JSONObject.toJSON(securityResp));
  43. }
  44. }