Things take time

[Android] AES 256 암호화 방법 본문

카테고리 없음

[Android] AES 256 암호화 방법

겸손할 겸 2019. 9. 9. 18:01

[개요]

 

이전에 SharedPreference와 같은 폰 내부에 저장되는 파일에 대한 암호화를 다루면서 AES, RSA 암호화에 대해 짤막하게 소개했다. 그 포스팅의 요지는 폰 내부 데이터베이스에 저장되는 값을 AES, RSA 중 하나를 선택해 암호화 하되, 노출되면 위험해지는 키의 저장 위치를 폰 내부 키스토어라는 안전한 곳에 저장하자가 요지였다.

 

이에 덧붙여 알고리즘 방법 중 하나인 AES에 대해 정리하려한다.

 

[AES]

 

AES암호화는 AES 128, AES 256등 뒤에 숫자가 붙는데 이 숫자의 의미는 암호화에 사용되는 키의 bit수를 의미한다.

256의경우 256bit, 32byte를 의미하며 한글의 경우 16자, 숫자의 경우 32자를 의미한다.(아스키코드기준, UTF같은 애들은 3byte)

 

또한 AES는 하나의 키(비밀 키라고도 함)를 암호화, 복호화에 모두 사용한다. 그러므로 이 키의 보안이 중요하다. 어쨌든, 키의 보안성은 이전 포스팅에서 말했고, 이 방법을 기준으로 암호화를 하는 소스코드이다.

 

암호화에 사용되는 블록 사이즈 및 IV(초기화 벡터)는 128bit로 고정된 값이어야 한다.

 

 

 

 

[출처]

 

메인 소스 : https://niceman.tistory.com/91

 

[Android,Java] 안드로이드 - AES256 암호화 및 복호화 예제 소스 다운로드

Android(안드로이드) - AES256 암복호화(Encryption, Decryption) ① 안드로이드 프로젝트 개발 중 서버와 단말기 통신 간의 데이터 암호화 기능이 필요해서 작업 완료 후 AES256 예제 소스 파일을 하단에 공유합..

niceman.tistory.com

용어 설명 : http://redutan.github.io/2015/11/20/about-crypto

 

상호 간 암호화 스팩 공유에 관하여

MJ's DevOOOOOOOOP blog

redutan.github.io

단순히 소스를 긁는것으로는 이해도가 떨어진다. 설명을 꼭 참고해서 이해하자. 외울필요는 없어도 나중에 보면 '아 그랬지' 하고 보는거랑 '이게 뭐지' 하고 보는거랑은 다르니까.