在我的系统上 人们的数据应该通过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;
}
对方会消耗数据吗?非常感谢你......
答案 0 :(得分:1)
不,这不起作用。
简单的解决方案是使用TLS(HTTPS)。不需要加密代码,只需在java Web服务器或面向服务器的某个负载均衡器中进行一些配置,如apache2或nginx。
即使http客户端正在合作,像AES这样的对称算法也行不通。客户需要知道相同的密钥。