package com.navinfo.omqs import android.app.Application import android.util.Log import com.navinfo.omqs.db.MyRealmModule import com.navinfo.omqs.tools.FileManager import dagger.hilt.android.HiltAndroidApp import io.realm.Realm import io.realm.RealmConfiguration import kotlinx.coroutines.launch import java.io.File import java.math.BigInteger import java.security.MessageDigest @HiltAndroidApp class OMQSApplication : Application() { override fun onCreate() { super.onCreate() FileManager.initRootDir(this) Realm.init(this) val password = "encryp".encodeToByteArray().copyInto(ByteArray(64)) // 70617373776f72640000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 Log.d("OMQSApplication", "密码是: ${byteArrayToHexString(password)}") val config = RealmConfiguration.Builder() .directory(File(Constant.DATA_PATH)) .name("OMQS.realm") .encryptionKey(password) .modules(Realm.getDefaultModule(), MyRealmModule()) .schemaVersion(1) .build() Realm.setDefaultConfiguration(config) } private fun getKey(inputString: String): String { val messageDigest = MessageDigest.getInstance("SHA-256") val hashBytes = messageDigest.digest(inputString.toByteArray()) return hashBytes.joinToString("") { "%02x".format(it) }; } fun byteArrayToHexString(byteArray: ByteArray): String { return byteArray.joinToString("") { "%02x".format(it) } } }