일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 앱 백그라운드 푸시 데이터 저장
- 스위프트 푸시
- native flutter view
- flutter 회전
- 노티피케이션 익스텐션
- Swift flutterview
- 안드로이드 에러
- 안드로이드 FCM
- Flutter UIKitView MethodChannel
- 스위프트 카메라
- 스위프트 테이블 뷰 셀
- silent push
- 안드로이드 숏컷
- Flutter NativeView
- 스위프트 앨범
- swift 문자
- 스위프트 UserDefaults
- 플러터 뷰 컨트롤러
- 스위프트
- 푸시 데이터 저장
- swift autolayout
- flutter rotate
- 스위프트 웹뷰
- FlutterView MethodChannel
- 안드로이드 바로가기
- 앱 꺼졌을 때 푸시 데이터 저장
- NotificationService Extension
- Swift flutterviewcontroller
- swift sms
- 안드로이드 앨범
- Today
- Total
Things take time
[Android] AES 256 암호화 방법 본문
[개요]
이전에 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
용어 설명 : http://redutan.github.io/2015/11/20/about-crypto
단순히 소스를 긁는것으로는 이해도가 떨어진다. 설명을 꼭 참고해서 이해하자. 외울필요는 없어도 나중에 보면 '아 그랬지' 하고 보는거랑 '이게 뭐지' 하고 보는거랑은 다르니까.