使用spring boot

时间:2018-06-07 18:53:00

标签: java json spring-boot

在我的系统上 人们的数据应该通过json导出到基于Rest的系统,后期身体有效负载应该加密...因为我的知识很小,休息和springboot我不知道我做得对..我认为不。 *我正在使用jooq

我在这里寻找人并返回人员列表

       Result<Record> result = ctx.select()
                .from(PERSON)
                .orderBy(PERSON.NUM)
                .fetch();

        for (Record r : result) {
            Integer lNum = r.getValue(PERSON.NUM);
            String name = r.getValue(PERSON.SNOME);
            String rm = r.getValue(PERSON.SRM);

            personDto = new AlunoDto();
            personDto.setlNum(num);
            personDto.setsNome(name);
            personDto.setsRm(rm);
            personList.add(personDto);
        }

    } catch (Exception e) {
        e.printStackTrace();
    }
    **return personList;**

在我的PersonController中,我获取了人员列表,并将步骤作为参数转换为转换为json和加密的方法

@RequestMapping(value = "/person", method = RequestMethod.GET)
public String getAllPerson(){
    try {
       personsEncypted= convertToJson(personList);
    } catch (JsonProcessingException e) {
        e.printStackTrace();
    }
   return personsEncypted;
}

   public String  convertToJson(List obj) throws JsonProcessingException {

    ObjectMapper mapper = new ObjectMapper();
    String onInString = mapper.writerWithDefaultPrettyPrinter().writeValueAsString(obj);

    String key = "00000000000000000000000000"; 
    String personEncrypted= encrypt(key, jsonInString);
    return personEncrypted;
}

public static String encrypt(String key, String value) {
    try {

   SecretKeySpec skeySpec = new SecretKeySpec(key.getBytes("UTF-8"), "AES");
      Cipher cipher = Cipher.getInstance("AES/CBC/PKCS5PADDING");
        cipher.init(Cipher.ENCRYPT_MODE,skeySpec);
        byte[] encrypted = cipher.doFinal(value.getBytes());

        return Base64.encodeBase64String(encrypted);
    } catch (Exception ex) {
        ex.printStackTrace();
    }

    return null;
}

点击浏览器中的地址是数据的显示方式 enter image description here

对方会消耗数据吗?非常感谢你......

1 个答案:

答案 0 :(得分:1)

不,这不起作用。

简单的解决方案是使用TLS(HTTPS)。不需要加密代码,只需在java Web服务器或面向服务器的某个负载均衡器中进行一些配置,如apache2或nginx。

即使http客户端正在合作,像AES这样的对称算法也行不通。客户需要知道相同的密钥。