데이터 암호화가 필요한 경우 LockBox 컴포넌트를 이용해 데이터를 암호화/복호화 할 수 있습니다.

 

LockBox 설치

LockBox는 엠바카데로에서 지원하는 터보팩 오픈소스 중 하나이며, 겟잇 패키지 매니저를 통해 설치하거나, 직접 다운로드 후 설치할 수 있습니다.

 

겟잇 패키지 매니저로 설치

겟잇 패키지 매니저(Tools > Getit Package Mnager..)에서 LockBox 검색 후 [Install] 버튼을 눌러 설치합니다.

lockbox_install.png

 

직접 다운로드 및 설치

겟잇 패키지 매니저를 사용할 수 없는 버전의 경우 아래 링크에서 다운로드 설치 안내에 따라 설치합니다.

https://github.com/TurboPack/LockBox3

 

LockBox 컴포넌트 활용

샘플 프로젝트

LockBox.zip

 

컴포넌트를 이용한 암복호화

lockbox_comp.png

위 2개 컴포넌트를 이용해 암/복호화 기능을 구현합니다.

 

var

  Str: string;

  EncStr: string;

  EncStr2: string;

  DecStr: string;

begin

  Codec1.Password := 'asdf';

 

  Str := Edit1.Text;

  Codec1.EncryptString(Str, EncStr, TEncoding.UTF8);

  Memo1.Lines.Add('Encrypted string = ' + EncStr);

  Edit2.Text := EncStr;

 

  Codec1.DecryptString(DecStr, EncStr, TEncoding.UTF8);

  Memo1.Lines.Add('Decrypted string=' + DecStr);

  Edit3.Text := DecStr;

end;

 

코드를 이용한 암복호화

코드를 이용한 암복호화는 다음과 같이 구현할 수 있습니다.

var

  Str, EncStr, DecStr: string;

  CryptographicLibrary: TCryptographicLibrary;

  Codec: TCodec;

begin

  CryptographicLibrary := TCryptographicLibrary.Create(nil);

  Codec := TCodec.Create(nil);

  Codec.CryptoLibrary := CryptographicLibrary;

  Codec.StreamCipherId := BlockCipher_ProgID;

 

  Codec.BlockCipherId := Blowfish_ProgId;

//  FCodec.BlockCipherId := Format(AES_ProgId, [128]);

  Codec.ChainModeId := CBC_ProgId;

  Codec.Password := 'asdf';

 

  Str := Edit1.Text;

  Codec.EncryptString(Str, EncStr, TEncoding.UTF8);

  Memo1.Lines.Add('Encrypted string = ' + EncStr);

  Edit2.Text := EncStr;

 

  Codec.DecryptString(DecStr, EncStr, TEncoding.UTF8);

  Memo1.Lines.Add('Decrypted string = ' + DecStr);

  Edit3.Text := DecStr;

end;

 

다음과 같이 다양한 암호화 종류를 사용할 수 있습니다.

lockbox_Cipher.png

 

번호 제목 글쓴이 날짜 조회 수
공지 [DelphiCon 요약] 코드사이트 로깅 실전 활용 기법 (Real-world CodeSite Logging Techniques) 관리자 2021.01.19 15767
공지 [UX Summit 요약] 오른쪽 클릭은 옳다 (Right Click is Right) 관리자 2020.11.16 14173
공지 [10.4 시드니] What's NEW! 신기능 자세히 보기 관리자 2020.05.27 16731
공지 RAD스튜디오(델파이,C++빌더) - 고객 사례 목록 관리자 2018.10.23 22289
공지 [데브기어 컨설팅] 모바일 앱 & 업그레이드 마이그레이션 [1] 관리자 2017.02.06 23606
공지 [전체 목록] 이 달의 기술자료 & 기술레터 관리자 2017.02.06 19125
공지 RAD스튜디오(델파이, C++빌더) - 시작하기 [1] 관리자 2015.06.30 39556
공지 RAD스튜디오(델파이,C++빌더) - 모바일 앱 개발 사례 (2020년 11월 업데이트 됨) 험프리 2014.01.16 174979
269 ComPort(시리얼 통신) 컴포넌트 설치안내 [11] file 험프리 2013.12.04 108736
268 델파이 XE2에서 dbExpress를 이용해 오라클 연결하기 file 박병일 2012.02.15 17736
267 다중 클라이언트를 위한 DataSnap 서버 만들기 관리자 2011.12.22 16120
266 델파이XE2의 VCL Styles 활용하기 박병일 2012.01.19 15368
265 dbExpress 의 SQLConnection 에서 트랜젝션 처리하기 박병일 2012.02.08 13978
264 [델파이 문법 시리즈] #1. 제네릭 - 개요 file 관리자 2012.03.21 13171
263 델파이 XE2 DataSnap Client 만들기 [1] 관리자 2011.12.22 12900
262 [델파이 업그레이드 마이그레이션 무상 컨설팅] 체크리스트와 가이드(첨부 파일) [1] file 관리자 2012.02.08 12885
261 "모바일 앱" 개발 또는 유지관리, 데브기어와 해결하세요! file 관리자 2015.03.26 12741
260 [델파이 문법] 클래스와 객체 #8 file 관리자 2012.05.07 12589
259 델파이로 만든 구글 지오코딩 쎔플 입니다. 박병일 2012.02.06 11022
258 [델파이 문법] 클래스와 객체 #1 file 관리자 2012.04.12 10874
257 [오픈소소] 델파이용 TProcessInfo 클래스 file 관리자 2012.05.23 10457
256 VCL Style Util 박병일 2012.01.11 10287
255 [델파이 문법 시리즈] #2. 제네릭 - 용어 file 관리자 2012.03.22 10012
254 [델파이 문법] 클래스와 객체 #10 file 관리자 2012.05.22 9863
253 [델파이 문법] 클래스와 객체 #3 file 관리자 2012.04.18 9327
252 델파이 XE2 Update4의 새기능 - 더 쉬운 모바일 REST 접속 file 박병일 2012.03.06 9145
251 [델파이 문법] 프로그램과 유닛 #1 file 관리자 2012.09.03 9072