최악의 상황의 로직을 그려보았습니다.

오토마타 수업이 생각나네요 -_-;


1.사용자가 1234로 암호를 설정한다.

2. 암호 메모를 작성하면 1234(메모내용); 로 암호화가 된다.

3. 암호자체의 암호 AES(1234) 가 db 에 저장된다. 

4. 루팅사용자가 암호 db를 삭제한다.

5. 암호 글을 읽으려고 하면 기존 암호 db가 삭제된걸 알고 어쩔 수 없이 암호 설정 액티비티에서 암호를 새로 만든다.

6. 그 새로 만든 암호가1234가 아닌 asdf 일경우 기존 암호화 메모는 복호화 되지 못한다.



automata.png


해결방법1. sqlite안에 암호글을 넣을때는 내용을 encrypt 하지 않는다. -> 보안 부분 우려

해결방법2. 메모내용을 사용자 암호로 encrypt 하지 않고 내부 암호를 사용한다 -> 디컴파일시 알고리즘 파괴 




아이디어좀...굽신굽신...