와챠의 우당탕탕 코딩 일기장
[Android/Kotlin] hide KEY/KEY 숨기기 본문
반응형
ACCESS KEY나 SECRET ACCESS KEY 같이 중요한 정보는
github에서 보여지면 위험하기 때문에 꼬옥 숨겨주어야 한다.
프로젝트 할 때 S3와 통신할 일이 있어서 ACCESS KEY랑 SECRET ACCESS KEY를 안드 내에 저장하고, 꺼내 쓸 일이 있었는데 어케 KEY를 숨기고 꺼냈는지 써보려고 한다!
1. local.propertiles 파일에 해당 키들을 적어준다.
access.key = AK어쩌구저저구QF
secret.access.key = h1이러쿵저러쿵1P
2. app 단위 build.gradle에 아래 코드를 추가한다.
코드는,,, 보면 금방 알겠지만 주석으로 설명해봄.
plugins {
...
}
// 추가
// Properties를 사용해서 local.properties 내용을 가져온다.
Properties properties = new Properties()
properties.load(project.rootProject.file('local.properties').newDataInputStream())
// local.properties에 저장했던 변수 이름을 가져오는 함수를 만들고
def accessKey = properties.getProperty('access.key')
def secretAccessKey = properties.getProperty('secret.access.key')
android {
compileSdk 32
defaultConfig {
applicationId "com.example.safetymanagement2022"
minSdk 21
targetSdk 32
versionCode 1
versionName "1.0"
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
// 추가
// resValue와 위에서 정의함 함수를 사용해 string 형식의 데이터를 access_key라는 이름으로 저장한다.
resValue "string", "access_key", accessKey
resValue "string", "secret_access_key", secretAccessKey
}
...
}
dependencies {
...
}
3. sync ~~
4. Manifest의 application 태그 안에 아래 코드 추가.
<!--s3 key-->
<meta-data
android:name = "accessKey"
android:value = "@string/access_key"/>
<meta-data
android:name = "secretAccessKey"
android:value = "@string/secret_access_key"/>
~~ 여기까지 저장 끝!! ~~
5. 저장한 값 불러오기
private val ai: ApplicationInfo = context.packageManager
.getApplicationInfo(context.packageName, PackageManager.GET_META_DATA)
private val ak: String = ai.metaData["accessKey"].toString()
private val sak: String = ai.metaData["secretAccessKey"].toString()
끝입니다^_^
++
앗 젤 중요한 거는 .gitignore 파일 안에
local.properties 가 꼬옥 들어가 있어서 github에서도 안 보임!!!!!!!!!!!!
이건 기본으로 다 되어있긴 하던데 그래도 확인을 꼬옥 해보셔요
반응형
'코딩 일기장 > Android(Kotlin)' 카테고리의 다른 글
Comments