[ jsp ] 정부프레임워크 (egovframework) crypto 를 통한 해쉬 만들고 적용하는 방법 > jsp&servlet

본문 바로가기
사이트 내 전체검색

jsp&servlet

[ jsp ] 정부프레임워크 (egovframework) crypto 를 통한 해쉬 만들고 적용하는 방법

페이지 정보

작성자 웹지기 댓글 0건 조회 75회 작성일 22-07-27 13:37

본문

정부프레임워크 (egovframework)에서 crypto를 통해 해쉬를 만들고 적용하는 방법

 

1) 해쉬 만들기 테스트 파일 작성

/src/test/java 에 새로운 패키지 > egovframework.com.crypto.xmlconfig 생성

/src/test/java/egovframework.com.crypto.xmlconfig/ 에 새로운 클래스 파일 EgovEnvCryptoAlgorithmCresteTest 생성

egovframe.go.kr 로 이동 

개발프레임워크 실행환경 > 프레임워크 실행환경 4.0 > 클릭

개발프레임워크 실행환경 4.0 > 공통기반 > crypto > crypto간소화 > 클릭

crypto 간소화 서비스 

 

Crypto algorithmKey, algorithmKeyHash 생성

Crypto Config 설정에 algorithmKey, algorithmKeyHash 인코딩 키 생성 방법을 제공한다
하단 코드에서 계정암호화키 키 값을 원하는 값으로 설정한다.

importorg.slf4j.Logger;
importorg.slf4j.LoggerFactory;
importorg.egovframe.rte.fdl.cryptography.EgovPasswordEncoder;
publicclass EgovEnvCryptoAlgorithmCreateTest {privatestaticfinal Logger LOGGER = LoggerFactory.getLogger(EgovEnvCryptoAlgorithmCreateTest.class);
	//계정암호화키 키publicString algorithmKey ="(사용자정의 값)";
	//계정암호화 알고리즘(MD5, SHA-1, SHA-256)publicString algorithm ="SHA-256";
	//계정암호화키 블럭사이즈publicint algorithmBlockSize =1024;
	publicstaticvoid main(String[] args){
		EgovEnvCryptoAlgorithmCreateTest cryptoTest =new EgovEnvCryptoAlgorithmCreateTest();
 
		EgovPasswordEncoder egovPasswordEncoder =new EgovPasswordEncoder();
		egovPasswordEncoder.setAlgorithm(cryptoTest.algorithm);
 
		LOGGER.info("------------------------------------------------------");
		LOGGER.info("알고리즘(algorithm) : "+cryptoTest.algorithm);
		LOGGER.info("알고리즘 키(algorithmKey) : "+cryptoTest.algorithmKey);
		LOGGER.info("알고리즘 키 Hash(algorithmKeyHash) : "+egovPasswordEncoder.encryptPassword(cryptoTest.algorithmKey));
		LOGGER.info("알고리즘 블럭사이즈(algorithmBlockSize)  :"+cryptoTest.algorithmBlockSize);
 
	} 

} 

코드를 복사하여 새로 생성한 EgovEnvCryptoAlgorithmCresteTest 클래스 파일에 붙여 넣기하고 저장을 한다.

 

2) 암호화되 코드 넣기 

파일위에서 마우스 우클릭 > Run As > Java Application > 클릭하게 되면 Console 창에 알고림즘. 알고리즘키, 해쉬 블럭사이즈 등이 나오게 된다.

INFO [egovframework.com.crypto.xmlconfig.EgovEnvCryptoAlgorithmCreateTest] ------------------------------------------------------

INFO [egovframework.com.crypto.xmlconfig.EgovEnvCryptoAlgorithmCreateTest] 알고리즘(algorithm) : SHA-256

INFO [egovframework.com.crypto.xmlconfig.EgovEnvCryptoAlgorithmCreateTest] 알고리즘 키(algorithmKey) : egovframe

INFO [egovframework.com.crypto.xmlconfig.EgovEnvCryptoAlgorithmCreateTest] 알고리즘 키 Hash(algorithmKeyHash) : gdyYs/IZqY86VcWhT8emCYfqY1ahw2vtLG+/FzNqtrQ=

INFO [egovframework.com.crypto.xmlconfig.EgovEnvCryptoAlgorithmCreateTest] 알고리즘 블럭사이즈(algorithmBlockSize)  :1024 

이렇게 생성된 값을

/src/main/resources/egovframework/spring/com/context-crypto.xml 파일에 key, hash 등에 맞게 넣어준다.

 

3) 크림토 테스트 파일 작성하기

/src/test/resources 에 패키지 egovframewrok 생성

/src/test/resources/egovframework 에 패키지 생성 com

/src/test/resources/egovframework/com에 에 context-crypto-test.xml 파일 생성  

환경설정 파일(globals.properties) 암호화

 

환경설정 파일(globals.properties)의 데이터베이스 연결 항목(Url, UserName, Password) 인코딩 값 생성

환경설정 파일에서 데이터베이스 연결 항목(Url, UserName, Password) 인코딩 키 생성 방법을 제공한다. 

아래 부분을 복사해서 넣 새로 생성한 context-crypto-test.xml 파일에 넣어준다.

<beansxmlns="http://www.springframework.org/schema/beans"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xmlns:egov-crypto="http://maven.egovframe.go.kr/schema/egov-crypto"xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-4.0.xsd		http://maven.egovframe.go.kr/schema/egov-crypto http://maven.egovframe.go.kr/schema/egov-crypto/egov-crypto-4.0.0.xsd">
 
	<beanname="messageSource"class="org.springframework.context.support.ResourceBundleMessageSource"><propertyname="useCodeAsDefaultMessage"><value>true</value></property><propertyname="basenames"><list><value>classpath:/egovframework/egovProps/globals</value></list></property></bean>
 
    <egov-crypto:configid="egovCryptoConfig"initial="false"crypto="true"algorithm="SHA-256"algorithmKey="(사용자정의 값)"algorithmKeyHash="(생성값)"cryptoBlockSize="1024"/>
 
</beans>

 

4)  암호화 생성 파일 작성

/src/test/java/egovframework.com.crypto.xmlconfig 아래에 EgovEnvCryptoUserTest.java 파일 생성

// 데이터베이스 연결 항목(Url, UserName, Password) 인코딩 값 생성 JAVAimportorg.slf4j.Logger;
importorg.slf4j.LoggerFactory;
importorg.springframework.context.ApplicationContext;
importorg.springframework.context.support.ClassPathXmlApplicationContext;
 
importorg.egovframe.rte.fdl.cryptography.EgovEnvCryptoService;
importorg.egovframe.rte.fdl.cryptography.impl.EgovEnvCryptoServiceImpl;
 
publicclass EgovEnvCryptoUserTest {
 
	privatestaticfinal Logger LOGGER = LoggerFactory.getLogger(EgovEnvCryptoUserTest.class);
 
	publicstaticvoid main(String[] args){
 
		String[] arrCryptoString ={"userId",         //데이터베이스 접속 계정 설정"userPassword",   //데이터베이스 접속 패드워드 설정"url",            //데이터베이스 접속 주소 설정"databaseDriver"//데이터베이스 드라이버};
 
 
		LOGGER.info("------------------------------------------------------");		
		ApplicationContext context =new ClassPathXmlApplicationContext(newString[]{"classpath:/context-crypto-test.xml"});
		EgovEnvCryptoService cryptoService = context.getBean(EgovEnvCryptoServiceImpl.class);
		LOGGER.info("------------------------------------------------------");
 
		String label ="";
		try{for(int i=0; i < arrCryptoString.length; i++){if(i==0)label ="사용자 아이디";
				if(i==1)label ="사용자 비밀번호";
				if(i==2)label ="접속 주소";
				if(i==3)label ="데이터 베이스 드라이버";
				LOGGER.info(label+" 원본(orignal):"+ arrCryptoString[i]);
				LOGGER.info(label+" 인코딩(encrypted):"+ cryptoService.encrypt(arrCryptoString[i]));
				LOGGER.info("------------------------------------------------------");
			}}catch(IllegalArgumentException e){
			LOGGER.error("["+e.getClass()+"] IllegalArgumentException : "+ e.getMessage());
		}catch(Exception e){
			LOGGER.error("["+e.getClass()+"] Exception : "+ e.getMessage());
		}
 
	}
  } 

 이렇게 된 부분에서

"userId",         //데이터베이스 접속 계정 설정

"userPassword",   //데이터베이스 접속 패드워드 설정

"url",            //데이터베이스 접속 주소 설정

"databaseDriver"  //데이터베이스 드라이버

이러한 부분들을

"com", "com01", "url", "databaseDriver" 형태로 넣어주고 

EgovEnvCryptoAlgorithmCreateTest.java 파일에서 마우스 우클릭 > Run As > Java Application > 클릭 하게 되면

console 창에 암호화 된 내용을 얻을 수 있다.

INFO [egovframework.com.crypto.xmlconfig.EgovEnvCryptoUserTest] ------------------------------------------------------

INFO [egovframework.com.crypto.xmlconfig.EgovEnvCryptoUserTest] 사용자 아이디 원본(orignal):userId

INFO [egovframework.com.crypto.xmlconfig.EgovEnvCryptoUserTest] 사용자 아이디 인코딩(encrypted):%2Bn5a7BD6CPuNjHSUL9AK8w%3D%3D

INFO [egovframework.com.crypto.xmlconfig.EgovEnvCryptoUserTest] ------------------------------------------------------

INFO [egovframework.com.crypto.xmlconfig.EgovEnvCryptoUserTest] 사용자 비밀번호 원본(orignal):com01

INFO [egovframework.com.crypto.xmlconfig.EgovEnvCryptoUserTest] 사용자 비밀번호 인코딩(encrypted):xz4fmrSdr1vGGl6UtwPLwA%3D%3D

INFO [egovframework.com.crypto.xmlconfig.EgovEnvCryptoUserTest] ------------------------------------------------------

INFO [egovframework.com.crypto.xmlconfig.EgovEnvCryptoUserTest] 접속 주소 원본(orignal):url

INFO [egovframework.com.crypto.xmlconfig.EgovEnvCryptoUserTest] 접속 주소 인코딩(encrypted):BqvAX86xPPqGQEFCB4aaKw%3D%3D

INFO [egovframework.com.crypto.xmlconfig.EgovEnvCryptoUserTest] ------------------------------------------------------

INFO [egovframework.com.crypto.xmlconfig.EgovEnvCryptoUserTest] 데이터 베이스 드라이버 원본(orignal):databaseDriver

INFO [egovframework.com.crypto.xmlconfig.EgovEnvCryptoUserTest] 데이터 베이스 드라이버 인코딩(encrypted):E4GtXk4i9yK0zjbiKDt5%2Fw%3D%3D

INFO [egovframework.com.crypto.xmlconfig.EgovEnvCryptoUserTest] ------------------------------------------------------ 

 이렇게 얻어진 값을 /src/main/resources/egovframework/egovProps/globals.properties 파일에 적용 시킬 수 있다.

추천0 비추천0

댓글목록

등록된 댓글이 없습니다.

Total 23건 1 페이지
  • 열람중 [ jsp ] 정부프레임워크 (egovframework) crypto 를 통한 해쉬 만들고 적용하는 방법
  • 정부프레임워크 (egovframework)에서 crypto를 통해 해쉬를 만들고 적용하는 방법 1) 해쉬 만들기 테스트 파일 작성 /src/test/java 에 새로운 패키지 &gt; egovframework.com.crypto.xmlconfig 생성 /src/test/java/egovframework.com.crypto.xmlconfig/ 에 새로운 클래스 파일 EgovEnvCryptoAlgorithmCresteTest 생성 egovframe.go.kr 로 이동 개발프레임워...
  • 웹지기 07-27 76 0 0 댓글 0
  • 22 [ jsp ] 정부프레임워크 4.0 (egovframework) DB 비번 암호화 사용 미사용 (crypto…
  • 정부프레임워크 4.0 기준 데이터베이스의 비밀번호 암호화 사용 미사용설정 1) pom /pom.xml 의 117줄 ~ 121줄까지 사용된 crypto 설정을 넣어줘야 한다. 2) properties /src/main/resources/egovframework/egovProps/globals.properties 의 41줄 기존 암호화에서 암호화 사용X로 쓸때 Globals.mysql.Password = xz4fmrSdr1vGGl6UtwPLwA%3D%3D 이 구문을 아래 처럼 비밀...
  • 웹지기 07-27 65 0 0 댓글 0
  • 21 [ jsp ] 정부프레임워크( egovframe )에서 세션 사용 설정
  • 1)pom /pom.xml 파일의 123줄 처럼 access 가 정의 되어 있어야 한다. 2) properties /src/main/resources/egovframework/egovProps/globals.properties 파일의 26줄 권한설정 부분을 Globals.Auth = session 으로 사용 3) access /src/main/webapp/WEB-INF/config/efovframework/springmvc/egov-com-access.xml 파일의 26줄 gl...
  • 웹지기 07-27 80 0 0 댓글 0
+1
  • 19 [ jsp ] Spring 원리, 사용 설명, 사용 설정
  • ❖ 스프링(Spring) spring container에서 해당 열할을 하고 자동으로 뷰리졸버 하는 api 프론트컨트롤러 api - front controller 대신 DispatcherServlet 가 대체 • DI = 의존성주입(Dependency Injection) - 의존성 주입은 각 객체간의 의존성을 스프링 컨테이너(Srping Container)가 자동으로 연결해 주는것으로 개발자가 빈(Bean) 설정파일에 의존관계가 필요한 정보를 추가하면 스프링 컨테이너가 자동으로 연결...
  • 웹지기 02-04 2455 0 0 댓글 0
+1
  • 18 [ jsp ] 세션(Session) 세션바인딩(Session Binding)
  • ❖ 세션(Session)이란? - 연결 지속성을 제공하기 위해 서버와 클라이언트에 저장되는 정보 - 서버에 정보를 요청 할 때 생성되는 상태정보 ❖ HttpSession 인터페이스 HttpSession 인터페이스는 둘 이상의 page request에서 사용자를 식별하거나, 웹사이트를 방문하고 새당 사용자에 대한 정보를 저장하는 방법을 제공. Servlet container는 HttpSession을 사용하여 HTTP client - HTTP server 간의 세션을 생성한다. 이때, 세...
  • 웹지기 02-02 2756 0 0 댓글 0
+1
  • 16 [ jsp ] mybatis - 설치, 설정, 연동 방법 정리
  • 1) MYBatis - SQL Mapping Framewrok for Java - download - blog.mybitis.org &gt; Procucts &gt; SQL Mapping Framework for Java &gt; Link ( Download : click ) 버젼에 변화가 크지 않은것으로 하기 위해 mybatis-3.4.4로 이동 &gt; Assets click &gt; zip 파일 다운로드 - 구조 m...
  • 웹지기 01-29 3776 0 0 댓글 0
  • 15 [ jsp ] Ajax 와 서블릿을 이용하여 통신을 하는 간단한 회원가입 프로그램
  • Ajax 와 서블릿을 이용하여 통신을 하는 간단한 회원가입 프로그램 1) 사용된 파일의 종류 //db 파일 프로젝트/src/kr.mem.db/member.sql //kr.mem.db 는 패키지 //회원수정 프로젝트/src/AjaxContentController.java //AjaxContentController.java 는 서블릿, url mapping은 ajaxcontent.do //회원삭제 프로젝트/src/AjaxDeleteController.java //AjaxControlle...
  • 웹지기 01-29 2330 0 0 댓글 0
  • 13 [ jsp ] JSTL이란? JSTL 다운로드, JSTL 사용법
  • 1) JSTL이란? - JSTL(JavaServer Page Standard Tag Libray) + EL(표현언어(Expression Language )) 의 조합 - JSP 표준 태그 라이브러리( 여러 프로그램이 공통으로 사용하는 코드를 모아놓은 코드의 집합)의 약어 - 자신만의 태그를 추가할 수 있는 기능을 제공 - HTML코드 내에 JAVA 코드인 스크립트릿을 변경해서 사용하게 해줌 (&lt;%=sum %&gt; =&gt; ${sum}, &l...
  • 웹지기 01-19 1350 0 0 댓글 0
  • 12 [ jsp ] HandlerMapping / HashMap
  • handlerMapping - dispatcherServlet로 받은 요청을 Controller로 보내지는데, 이런 요청이 어떤 방식으로 보내지는지(매핑하는지) 그 방법을 정해주는 클래스가 handler - 핸들러 매핑은 프로퍼티스파일(환경설정파일) 을 통해서 유지보수를 더 간소화 할 수가 있다. HashMap이란? - key와 value를 쌍으로 존재하는 자료구조 - HashMap을 사용하면 key값이 무엇이 들었는지 알 수 없다. - HashMap 클래스 내부구조로 Set ...
  • 웹지기 01-19 1048 0 0 댓글 0
  • 11 [ jsp ] servlet 폴더 및 구동 설명
  • jsp 폴더 및 설명 web-inf 경비실 └ lib - 도구(jar) └ class - 서블릿 일반 java-model(class) - dto(vo) - dao - util api(java에서 제공하는 또는 직접만든) └ web.xml - 배치서술자(안내) Servers -&gt; Tomcat v8.5 -&gt; server.xml ...
  • 웹지기 01-19 827 0 0 댓글 0
  • 10 [ jsp ] 내장객체
  • 내장객체 내장객체 반환값 타입 설명 request javax.servlet.http.httpServletRequest또는javax.servlet.ServletRequest 웹브라우저의 요청 정보를 저장하고 있는 객체 response javax.servlet.h...
  • 웹지기 01-15 958 0 0 댓글 0
게시물 검색

회원로그인

접속자집계

오늘
1,667
어제
13,749
최대
24,117
전체
4,665,930

그누보드5
Copyright © funyphp.com. All rights reserved.