홈 · 개발 참고자료

개발 참고자료

[파워빌더]KISA SEEDCBC 암호화 ( 단방향 sha256, 양방향 seed128 )

작성자
관리자
작성일
2016-09-17
조회
12613
분류
파워빌더
요즘 공공 쪽에서는 KISA 에서 배포하는 단방향 암호화와 양방향 암호화를 적용하길 원하더군요


( 단방향 sha256, 양방향 seed128 )




KISA 홈페이지에 들어가셔서 찾아보시면 ASP 또는 JSP 용으로 배포하는 파일이 있습니다.


받아서 풀어보면 암호기술 구현 안내서 라고.. 관련용어와 코딩방법을 설명하는 파일이 있습니다.


그리고 ASP 용으로 디렉토리 들어가보시면 SHA256.dll , SeedCBC.dll 을 제공하는데..


요걸 활용하는 방법입니다.




** 어차피 KISA 에서 배포하는 거라 여기 올려도 문제는 없을 것 같아 파일 올립니다.
** 되도록 KISA에서 직접 받으시길 권장합니다. 문제가 된다면 첨부파일 바로 삭제하겠습니다.




1.단(일)방향 암호화 SHA256 : 패스워드를 암호화 할 때 사용합니다.


//f_reg_dll('sha256') //Registry 뒤져봐서 등록안되어 있으면 등록. regsvr32 /s Path\SHA256.dll


int li_ret
OLEObject ole_sha
String ls_Enc




ole_sha = CREATE OLEObject
li_ret = ole_sha.ConnectToNewObject("SHA.sha256")


IF li_ret <> 0 THEN
MessageBox("알림", "단방향 암호화 모듈(SHA356)이 설치되지 않았습니다.")
RETURN -1
END IF




ls_enc = ole_sha.hash("1234ABCD")


MessageBox("단방향", ls_enc)


DESTROY ole_sha






2.양(쌍)방향 암호화 Seed128 : 주민번호 등 개인정보 암호화로 사용합니다.


int li_ret
OLEObject ole_seed
String ls_Enc, ls_Dec, ls_tmp




ole_seed = CREATE OLEObject
li_ret = ole_seed.ConnectToNewObject("seed.CBC")


IF li_ret <> 0 THEN
MessageBox("알림", "SEED 모듈 연결 실패.")
RETURN -1
END IF




ls_tmp = ole_seed.LoadConfig(gs_path + "\key.dat")
IF ls_tmp <> 'OK' THEN
f_message(ls_tmp)
DESTROY ole_seed
RETURN 0
END IF




ls_enc = ole_seed.Encrypt("1234abcd")


ls_dec = ole_seed.Decrypt(ls_enc)
MessageBox("양방향", ls_enc + " || " + ls_dec)




DESTROY ole_seed






** Appeon 으로 배포하고 테스트도 해봤습니다. 자체적으로는 잘돌아 가고 이상 없더군요.


**그런데 Seed의 경우 Java 로 된 다른 사이트와 서로 암복호화를 했는데..


** 이상하게 숫자 영문은 문제 없는데.. 한글이 깨지 더군요..


** UTF-8 로 변환해보고 아무리해도 안되는데... 일단 한글을 암호화 할일은 없는지라..


** 혹 다른 사이트에 암호화된 스트링을 보내서 다시 복호화하는 경우가 있다면 ..


** seed 로 한글 깨지는 현상 나오시면 해결해서 공유 바랍니다.[출처] KISA SEEDCBC 암호화 ( 단방향 sha256, 양방향 seed128 ) (파워빌더 커뮤니티(PBExpertClub)) |작성자 셰필드

첨부파일