안드로이드 응용 프로그램의 사용자 데이터를 저장하는 데 사용하는 Parse 계정이 있습니다. 소스 컨트롤을 사용하고 있기 때문에 코드에 내 비밀 키를 포함시키고 싶지 않습니다. "config"파일을 가지고 소스 제어를 유지하고 키를 호스트 할 수있는 방법이 있습니까? 이것이 실현 가능하지 않다면 그러한 상황을 처리하는 가장 좋은 방법은 무엇입니까?안드로이드 응용 프로그램에 비밀 키를 저장하는 가장 좋은 방법
3
A
답변
1
예, 소스 제어 외부에 폴더를 만들고 거기에 app.properties라는 파일을 넣고 해당 속성 파일에 키를 넣은 다음 폴더를 빌드 경로에 추가 할 수 있습니다. 그런 다음 특성 로더를 사용하여 클래스 경로에서로드하십시오.
개발자가 많거나 여러 대의 dev 컴퓨터가있는 경우 로컬 속성 위치를 빌드 경로의 변수로 설정하여 각 개발자가 자신의 환경을 구성 할 수 있습니다.
1
하나의 옵션은 키를 환경 변수에 넣은 다음 빌드 중에 읽는 것입니다. 당신의 pom.xml에
는<properties>
<secretKey>${env.SECRET_KEY}</secretKey>
<properties>
더 아래로 자원
<resource>
<directory>src/main/resources</directory>
<filtering>true</filtering>
</resource>
는 "config.properties"로 유지 자원의 "filtering '를 활성화 (secret.key) 속성을 선언 대체 할 준비가 된 변수로 읽으십시오 :
secret_key=${secretKey}
$ {secret.key}를 환경 변수의 값으로 대체합니다.
Android 스튜디오에서 빌드 할 때 gradle을 사용하는 경우 16.6.6.2 on filtering files 섹션을 참조하십시오.
Console console = System.console()
def password = console.readPassword("Enter Secret Key: ")
를 사용 gradlew build.gradle 내에서 실행할 때 Gradle을에서 다음
import org.apache.tools.ant.filters.FixCrLfFilter
import org.apache.tools.ant.filters.ReplaceTokens
task copyProductionConfig(type: Copy) {
from 'source'
include 'config.properties'
into 'build/targetpath/config'
expand([
secretKey: System.getenv("SECRET_KEY")
])
}
당신은 또한 입력을 요청할 수 있습니다 추가 한 다음 적절한 설정 또는 소스 파일에 적용합니다.
관련 문제
- 1. 안드로이드 응용 프로그램에 여러 사용자의 데이터를 저장하는 가장 좋은 방법
- 2. 안드로이드에 비밀 키를 저장하는 방법?
- 3. 안드로이드에서 비밀 키를 저장하는 방법
- 4. API 비밀 및 암호화 키를 저장하는 가장 좋은 방법은 무엇입니까?
- 5. 안드로이드 응용 프로그램에 데이터를 저장하는 가장 좋은 방법은 무엇입니까?
- 6. 비밀 키를 숨기는 가장 좋은 장소는 무엇입니까?
- 7. 티타늄 : 비밀 파일을 저장하는 가장 좋은 장소
- 8. 날씨 응용 프로그램에 대한 데이터를 저장하는 가장 좋은 방법
- 9. 자바의 스프레드 시트 응용 프로그램에 데이터를 저장하는 가장 좋은 방법
- 10. 웹 응용 프로그램에 사용자 업로드 파일을 저장하는 가장 좋은 방법
- 11. arraylist를 안드로이드 메모리에 저장하는 가장 좋은 방법
- 12. 암호화 키를 저장하는 가장 좋은 방법은 무엇입니까?
- 13. 응용 프로그램에 OAuth를 사용하는 가장 좋은 방법
- 14. 요일을 저장하는 가장 좋은 방법
- 15. 웹 응용 프로그램에 메뉴 항목을 저장하는 가장 좋은 방법은 무엇입니까?
- 16. WinForms 응용 프로그램에 인증 설정을 저장하는 가장 좋은 메커니즘은 무엇입니까
- 17. iPhone 응용 프로그램에 문자열을 저장하는 가장 좋은 방법은 무엇입니까?
- 18. 응용 프로그램에 대한 정보를 저장하는 가장 좋은 방법은 무엇입니까?
- 19. 안드로이드 데이터베이스에 리소스 ID를 저장하는 가장 좋은 방법
- 20. 다른 응용 프로그램에서 비밀 키를 공유하는 방법
- 21. iPad - 데이터를 저장하는 가장 좋은 방법
- 22. 모듈 테스트에만 사용하는 비밀 데이터를 저장하는 가장 좋은 방법은 무엇입니까?
- 23. 키를 응용 프로그램에 보내는 방법
- 24. 안드로이드에 연속 데이터를 저장하는 가장 좋은 방법
- 25. 안드로이드 응용 프로그램의 유료 콘텐츠를 저장하는 가장 좋은 방법은 무엇입니까?
- 26. 모바일 응용 프로그램 (안드로이드)에서 비디오를 저장하는 가장 좋은 솔루션
- 27. 안드로이드에 작은 데이터를 저장하는 가장 좋은 방법
- 28. 비밀번호를 저장하는 가장 좋은 방법
- 29. 데이터를 저장하는 가장 좋은 방법
- 30. 로케이터를 저장하는 가장 좋은 방법
소스에 액세스 할 수있는 사람들로부터 파스 키를 비밀로 유지하려고하지만 애플리케이션과 함께 배포하는 데 신경 쓰지 않으십니까? 정말 관심이있는 사람이라면 APK를 디 컴파일하여 키를 얻을 수 있습니다. – nasch
@nasch 나는 이것이 내가 미래에 프로젝트를 오픈 소싱하는 것을 막을 것이라고 더 걱정했다. 이 상황을 어떻게 처리할까요? – khalid13
[Android의 비공개 API 키 저장에 대한 우수 사례] (https://stackoverflow.com/questions/14570989/best-practice-for-storing-private-api-keys-in-android)의 가능한 복제본 – Suhaib