Экспорт JSON зашифрован с весенней загрузки - PullRequest
0 голосов
/ 07 июня 2018

в моей системе Данные людей должны быть экспортированы в систему, основанную на отдыхе, через json, полезная нагрузка тела сообщения должна быть зашифрована ... так как мои знания малы с отдыхом и спрингбутом, я понятия не имею, правильно ли я делаю.. ..Думаю, нет.* Я использую 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 голосов
/ 07 июня 2018

Нет, это не будет работать.

Простым решением является использование TLS (HTTPS).Код шифрования не требуется, просто какая-то конфигурация на вашем веб-сервере java или в каком-нибудь балансировщике нагрузки, стоящем перед сервером, например apache2 или nginx.

Даже если бы взаимодействовал http-клиент, симметричный алгоритм, такой как AES, не работал бы.Клиент должен знать тот же секретный ключ.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...