====== 암호화/복호화 ======
===== 개요 =====
암호화/복호화는 보안을 위하여 데이터를 암호화하거나 암호화된 데이터를 복호화하기 위해, ARIA 방식을 통한 데이터의 암호화 및 복호화 기능을 제공한다.
===== 전제조건 =====
암복호화 기능을 사용하기 위해서는 전자정부 표준프레임워크 실행환경중 egovframework.rte.fdl.crypto-x.x.x.jar 라이브러리를 필요로 한다.
보다 자세한 사항은 실행환경의 [[egovframework:rte:fdl:encryption_decryption|암호화/복호화]] 서비스를 참조한다.
===== 설명 =====
암복호화는 서비스를 통해 데이터 암호화 및 복호화를 제공하는 기능으로 별도의 화면에서 평문을 입력하고 암호화 문자열을 암호화하여 BASE64형태로 전달받으며, 이를 다시 원문으로 복호화 하는 참고 화면을 제공한다.
==== 패키지 참조 관계 ====
암호화/복호화 패키지는 요소기술의 공통 패키지(cmm)에 대해서만 직접적인 함수적 참조 관계를 가진다.
* 패키지 간 참조 관계 : [[egovframework:com:v2:init_pkg_dependency#보안|보안 Package Dependency]]
==== 관련소스 ====
^유형^대상소스^비고^
|Controller|egovframework.com.sec.pki.web.EgovCryptoController.java|암호화/복호화 테스트를 위한 컨트롤러 클래스|
|Service|egovframework.com.sec.pki.service.EgovGPKIService.java|암호화/복호화를 위한 서비스 인터페이스|
|ServiceImpl|egovframework.com.sec.pki.service.impl.EgovGPKIServiceImpl.java|암호화/복호화를 위한 서비스 구현 클래스|
|JSP|/WEB-INF/jsp/egovframework/com/sec/pki/EgovCryptoInfo.jsp|암호화/복호화 테스트를 위한 jsp페이지|
|Message properties|resources/egovframework/message/com/sec/pki/message_ko.properties|암호화/복호화를 위한 Message properties(한글)|
|Message properties|resources/egovframework/message/com/sec/pki/message_en.properties|암호화/복호화를 위한 Message properties(영문)|
==== 환경설정 ====
암호화/복호화 기능을 활용하기 위하여 필요한 항목 및 그 환경 설정은 다음과 같다.
=== crypto ARIA 암복호화 라이브러리 설치 확인 ===
ARIA 방식의 암호화 복호화 서비스를 사용하기 위해서는 표준프레임워크 실행환경 구성요소중 cryto라이브러리가 설치되어야 한다.
== pom.xml 추가 (dependency추가) ==
egovframework.rte
egovframework.rte.fdl.crypto
${egovframework.rte.version}
== context-crypto.xml 설정 ==
== Controller에서 서비스 주입 ==
@Controller
public class EgovCryptoController {
/** 암호화서비스 */
@Resource(name = "egovEnvCryptoService")
EgovEnvCryptoService cryptoService;
@Resource(name = "egovEnvPasswordEncoderService")
EgovPasswordEncoder egovPasswordEncoder;
..........
* 해당 샘플은 v3.8 이상을 사용하여야 정상적인 구동이 가능하다.
===== 관련화면 =====
암복호화 테스트 화면은 다음과 같다.
==== 암호화/복호화 테스트 ====
=== 관련코드 ===
cryptoService.encrypt(encrypt); // 암호화한후에 URLEncoding 처리함.
cryptoService.encryptNone(encrypt); // 암호화한후에 URLEncoding 처리 안함.
return cryptoService.decrypt(decrypt); // 복호화전에 URLDecoding 처리함.
cryptoService.decryptNone(decrypt); // 복호화전에 URLDecoding 처리 안함.
=== 관련화면 및 수행매뉴얼 ===
^Action^URL^Controller method^SQL Namespace^SQL QueryID^
|테스트조회|/sec/pki/EgovCryptoInfo.do|displayCryptoInfo|""|""|
{{:egovframework:com:v3.9:sec:ariatest.jpg|암복호화 테스트화면}}
테스트는 전달된 평문에 대한 암호화 데이타를 BASE64로 표시하여주고 암호화 데이타를 복호화 하여 문자열로 출력한다.