ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 전자정부프레임워크 Aria 암호화 & 복호화
    Web (Spring ) 2016. 9. 29. 11:26

    개요

    회원가입 정보를 암호화 및 복호화 할 수 있는 전자정부프레임워크 Aria에 대해서 알아보자

    pom.xml 의존성 주입

    1
    2
    3
    4
    5
        <dependency>
            <groupId>egovframework.rte</groupId>
            <artifactId>egovframework.rte.fdl.crypto</artifactId>
            <version>${egovframework.rte.version}</version>
        </dependency>
    cs


    CommonUtils 생성

    1
    2
    3
    4
    5
    import org.jasypt.contrib.org.apache.commons.codec_1_3.binary.Base64;
    import org.springframework.stereotype.Component;
     
    import egovframework.rte.fdl.cryptography.EgovPasswordEncoder;
    import egovframework.rte.fdl.cryptography.impl.EgovARIACryptoServiceImpl;
    cs

    import 선언


    1
    2
    @Component("commUtils")
    public class CommonUtils {
    cs

    유틸 클래스 생성 후 @component 선언


    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
        //복호화
        public byte[] decrypted(String value, String key){
            
            EgovPasswordEncoder egovPasswordEncoder = new EgovPasswordEncoder();
            EgovARIACryptoServiceImpl egovARIACryptoServiceImpl = new EgovARIACryptoServiceImpl();
            
            String hasedPassword = passwordEncoder.encryptPassword(key);
            egovPasswordEncoder.setHashedPassword(hasedPassword);
            egovPasswordEncoder.setAlgorithm("SHA-256");
            egovARIACryptoServiceImpl.setPasswordEncoder(egovPasswordEncoder);
            egovARIACryptoServiceImpl.setBlockSize(1025);
            
            byte[] decrypted = egovARIACryptoServiceImpl.decrypt(Base64.decodeBase64(value.getBytes()), key);
            return decrypted;
        }
        
        //암호화
        public byte[] encrypted(String value, String key){
            EgovPasswordEncoder egovPasswordEncoder = new EgovPasswordEncoder();
            EgovARIACryptoServiceImpl egovARIACryptoServiceImpl = new EgovARIACryptoServiceImpl();
            
            String hasedPassword = passwordEncoder.encryptPassword(key);
            egovPasswordEncoder.setHashedPassword(hasedPassword);
            egovPasswordEncoder.setAlgorithm("SHA-256");
            egovARIACryptoServiceImpl.setPasswordEncoder(egovPasswordEncoder);
            egovARIACryptoServiceImpl.setBlockSize(1025);
            
            byte[] encrypted = egovARIACryptoServiceImpl.encrypt(value.getBytes(), key);
            return encrypted;
        }
    cs


    Result

    회원정보 중 email을 암호화


    1
    2
    3
    4
    5
    @Controller
    public class UserController {
        
        @Resource(name="commUtils")
        private CommonUtils commUtils;
    cs


    @controller를 선언 뒤 @resource 어노테이션을 통해 해당 @componet를 불러온다.


    1
    2
    3
    4
    5
    6
    7
    if(userVo.getUseremail() != null && !userVo.getUseremail().equals("")){
    byte[] encrypted = commUtils.encrypted(userVo.getUseremail(), Integer.toString(userVo.getUserno()));
       userVo.setUseremail(new String(Base64.encodeBase64(encrypted)));
                    
       userVo.setUserno(userno);
       userService.updateUseremail(userVo);
    }
    cs


    2번라인 encrypted은 암호화


    1
    byte[] decrypted= commUtils.decrypted(userVo.getUseremail(), Integer.toString(userVo.getUserno()));
    cs


    1번라인 decrypted 은 복호화



    'Web (Spring )' 카테고리의 다른 글

    jQuery DatePicker 기간조회  (0) 2016.11.16
    List<Map<String,Object> add 방법  (1) 2016.09.30
    자주 쓰는 정규식  (0) 2016.09.23
    selectkey return 값이 '1'일 경우  (0) 2016.09.19
    Escape Sequence 문자  (0) 2016.09.19
Designed by Tistory.