openHelperFactory
는 Android에서 데이터베이스를 관리하기 위한 SQLiteOpenHelper 인스턴스를 생성하는 데 사용됩니다.
주로 Room 데이터베이스 라이브러리와 함께 사용됩니다.
Room은 SQLite 데이터베이스의 추상화 계층으로, 더 쉽고 안전하게 데이터베이스 작업을 수행할 수 있도록 도와줍니다.
openHelperFactory의 주요 역할은 데이터베이스를 여는 데 필요한 SQLiteOpenHelper를 제공하는 것입니다.
SQLiteOpenHelper는 데이터베이스 생성 및 업그레이드와 같은 작업을 처리합니다. Room 라이브러리에서 openHelperFactory는 데이터베이스 빌더에 전달되어 사용자 정의 SQLiteOpenHelper를 사용할 수 있도록 합니다.
SQLCipher 라이브러리 & 데이터베이스 암호화
encrypty_key
는 SQLCipher가 데이터베이스를 암호화하고 복호화하는 데 사용하는 비밀번호(패스프레이즈) 역할을 합니다. SQLCipher는 이 패스프레이즈를 사용하여 암호화 및 복호화 작업을 수행하는 AES-256 암호화 알고리즘을 제공합니다.
다시 말해, encrypty_key
는 데이터를 보호하기 위해 사용되는 비밀 키이고, 실제 암호화 및 복호화 알고리즘은 SQLCipher 라이브러리에 의해 처리됩니다. 이를 통해 데이터베이스의 보안을 강화할 수 있습니다.
dependencies {
// SQLCipher dependency
implementation 'net.zetetic:android-database-sqlcipher:4.5.0'
implementation "androidx.sqlite:sqlite:2.1.0"
implementation "androidx.sqlite:sqlite-framework:2.1.0"
}
// Room 데이터베이스 정의
@Database(entities = [YourEntity::class], version = 1)
abstract class AppDatabase : RoomDatabase() {
abstract fun yourDao(): YourDao
}
// 데이터베이스 암호화 설정 openHelperFactory()
fun getEncryptedDatabase(context: Context): AppDatabase {
val factory = SupportFactory(ENCRYPT_KEY.toByteArray())
return Room.databaseBuilder(
context,
AppDatabase::class.java,
"encrypted_database"
).openHelperFactory(factory)
.build()
}
SupportFactory
에 패스프레이즈를 전달하여 데이터베이스를 설정합니다. 패스프레이즈는 ByteArray
로 변환하여 사용합니다.
SQLCipher의 역할
- 패스프레이즈 사용:
encrypty_key
는 데이터베이스 파일의 암호화와 복호화에 사용됩니다. 이는 데이터베이스가 열릴 때 필요한 비밀 키로, 데이터베이스 파일을 안전하게 보호합니다. - AES-256 암호화:
SQLCipher는 AES-256 암호화 알고리즘을 사용하여 데이터베이스 파일을 암호화합니다. 이는 매우 강력한 암호화 알고리즘으로, 데이터를 안전하게 보호합니다. - 통합:
SQLCipher는 SQLite 데이터베이스와 호환되므로, 기존의 SQLite API를 사용하는 방식 그대로 암호화된 데이터베이스를 사용할 수 있습니다. Room과의 통합도 간단하며,SupportFactory
를 통해 쉽게 설정할 수 있습니다.
따라서, encrypty_key
는 SQLCipher가 제공하는 강력한 암호화 알고리즘을 사용하는데 필요한 비밀번호로, 데이터베이스의 암호화 및 복호화에 중요한 역할을 합니다.
'Android > [Android] ETC' 카테고리의 다른 글
[Android Clean Architecture] Hilt 설정 (0) | 2024.07.02 |
---|---|
[Android] Version Catalog (0) | 2024.06.29 |
[Android Studio] 안드로이드 스튜디오 설치 (0) | 2023.01.14 |