2013-03-04 5 views
3

나는 딜레마가있다. 내 안드로이드 기기에 보안 데이터를 저장해야한다.이 데이터는 개인 캐비닛의 로그인 정보이므로,이 정보를 간단한 txt 파일에 저장하는 것이 더 나을 것인가. 보안에 대해?) 아니면 안드로이드 플랫폼에 MySQL DB의 아날로그가 있습니까? (그리고 어떻게 액세스 할 수 있습니까?)Android에서 개인 데이터를 저장할 위치는 어디입니까?

+0

http://stackoverflow.com/questions/785973/what-is-the-most-appropriate-way-to-store-user-settings-in-android -application – Anukool

+0

이 답변은 귀하의 지시에 따릅니다. http://stackoverflow.com/questions/785973/what-is-the-most-appropriate-way-to-store-user-settings-in-android-application/786588 # 786588 – staaar

+1

암호화를 사용합니다. 코드에서 키를 하드 코딩하지 말고 대신 특정 장치의 특성에서 키를 파생시킵니다. –

답변

1

AFAIK 안드로이드 장치에서는 MySQL을 실행할 수 없지만 SQLite (tutorial)을 사용할 수 있습니다. 심지어 SQLCipher을 사용하여 암호화 된 데이터베이스에 저장할 수도 있습니다. APK에서 액세스 키를 추출하는 것이 그리 어렵지 않다고 들었지만

암호를 저장할 때 데이터베이스를 암호화하는 경우에도 암호를 반드시 암호화하십시오. 암호를 일반 텍스트로 저장하는 것은 거의 좋은 생각이 아닙니다.)

무엇을 하든지 텍스트 파일에 저장하지 마십시오!

0

안드로이드의 SQLdb에 세부 정보를 저장할 수 있지만 암호화를 사용하여 모든 양식 세부 정보를 저장하고 문자열을 유지하십시오.

정확히 똑같은 기술을 사용하고 암호화를 위해 phoneId를 사용하는 사람의 예는 아래 답변에서 볼 수 있습니다 (실제로 안전하다는 것이 확실하지 않지만).

Is it safe to store username + passwords in a local SQLite db in Android?

+2

온 - 장치 데이터베이스에 액세스 할 수있는 모든 사람이 전화 ID를 얻을 수 있기 때문에 전화 ID를 사용하는 것이 안전하지 않습니다. – Shade

+0

그래, 그게 내가 생각했던 것인데, 나는 대답에서 왜 그들이 그것을 권유했는지 모르겠다. – david99world

2

당신은 당신의 응용 프로그램 디렉토리에 간단한 txt 파일을 저장할 수 있습니다. 일반적으로 Android는 각 애플리케이션에 고유 한 uid를 할당합니다. 각 응용 프로그램에는 모드 660의 자체 응용 프로그램 디렉토리가 있습니다. 따라서 다른 응용 프로그램은 해당 내용에 액세스 할 수 없습니다. 대상 장치가 뿌리 장치 인 경우

String filename = "myfile"; 
String string = "Your security content"; 
FileOutputStream outputStream; 

try { 
    outputStream = openFileOutput(filename, Context.MODE_PRIVATE); 
    string = encrypt(string); 
    outputStream.write(string.getBytes()); 
    outputStream.close(); 
} catch (Exception e) { 
    e.printStackTrace(); 
} 

그러나, 다른 응용 프로그램이 파일에 액세스 할 수 있습니다 : 사용자의 응용 프로그램 디렉토리를 작성하려면, 다음과 같은 코드를 사용할 수 있습니다. 따라서 더 나은 방법은 데이터를 암호화하여 응용 프로그램 디렉토리에 저장하는 것입니다.

데이터베이스 접근 방식의 경우 동일한 문제가 있습니다. 내 보내지 않고 자신의 콘텐츠 공급자를 정의 할 수 있지만 루트 된 장치에서는 여전히 취약합니다. 그래서 당신이 무엇을 선택, txt 파일을 작성하거나 DB에 저장, 먼저 암호화가 필요합니다.

+0

내 답변을 게시 한 후 왜 2 초 만에 downvote를 말해주십시오. – StarPinkER

3

안드로이드 애플리케이션에 개인 데이터를 저장하는 가장 좋은 방법은 아무도 애플리케이션 이외의 데이터에 액세스 할 수 없도록 공유 개인 환경 설정을 개인 모드로 사용하는 것입니다. 자세한 내용은 Android 개발자가 공유 환경 설정에 대한 도움말을 참조하십시오. here.

관련 문제