看了很多文章终于写出来了,记录一下
package com.potato.timetable.util
import android.os.Build
import android.security.keystore.KeyGenParameterSpec
import android.security.keystore.KeyProperties
import android.util.Base64
import java.nio.ByteBuffer
import java.security.KeyStore
import javax.crypto.Cipher
import javax.crypto.KeyGenerator
import javax.crypto.SecretKey
import javax.crypto.spec.GCMParameterSpec
import javax.crypto.spec.SecretKeySpec
object KeyStoreUtils {
// 密钥别名
private const val alias = "LightTimetable"
// 加密模式
private const val transformation = "AES/GCM/NoPadding"
// 密钥提供者
private const val provider = "AndroidKeyStore"
/**
* 从系统中获取key
*/
@JvmStatic
fun getKey(): SecretKey {
if (Build.VERSION