다른 글들에서 내용은 이미 설명했고,
실제로 사용한 코드!
public String encrypt(String plainText) throws Exception {
String timestamp = String.valueOf(System.currentTimeMillis());
String urlPath = "/keys/v2/" + keyTag + "/encrypt";
String signature = generateSignature(timestamp, urlPath);
String base64PlainText = Base64.getEncoder().encodeToString(plainText.getBytes(StandardCharsets.UTF_8));
Map<String, String> requestBody = new HashMap<>();
requestBody.put("plaintext", base64PlainText);
HttpHeaders headers = getHeaders(timestamp, signature);
HttpEntity<Map<String, String>> entity = new HttpEntity<>(requestBody, headers);
RestTemplate restTemplate = new RestTemplate();
ResponseEntity<String> response = restTemplate.exchange(
getEncryptUrl(),
HttpMethod.POST,
entity,
String.class
);
JsonNode rootNode = objectMapper.readTree(response.getBody());
return rootNode.path("data").path("ciphertext").asText();
}
public String decrypt(String cipherText) throws Exception {
String timestamp = String.valueOf(System.currentTimeMillis());
String urlPath = "/keys/v2/" + keyTag + "/decrypt";
String signature = generateSignature(timestamp, urlPath);
Map<String, String> requestBody = new HashMap<>();
requestBody.put("ciphertext", cipherText);
HttpHeaders headers = getHeaders(timestamp, signature);
HttpEntity<Map<String, String>> entity = new HttpEntity<>(requestBody, headers);
RestTemplate restTemplate = new RestTemplate();
ResponseEntity<String> response = restTemplate.exchange(
getDecryptUrl(),
HttpMethod.POST,
entity,
String.class
);
JsonNode rootNode = objectMapper.readTree(response.getBody());
String base64Decoded = rootNode.path("data").path("plaintext").asText();
byte[] decodedBytes = Base64.getDecoder().decode(base64Decoded);
return new String(decodedBytes, StandardCharsets.UTF_8);
}
반응형
'Chapter01 > Open API' 카테고리의 다른 글
[NCP API] 개인 정보 암호화 방식 (0) | 2025.06.09 |
---|---|
[ NCP API ] encrypt / decrypt, signature 생성 예시 코드 (0) | 2025.06.02 |
[ NCP SENS ] SMS 2Factor 인증 (0) | 2025.05.22 |
[ OpenStreetMap nominatim API ] 위도 경도로 지역명 가져오기 (2) | 2025.02.12 |
[ OpenWeatherMap API ] 위치 기반 날씨 정보 제공 글로벌 API (0) | 2025.02.11 |