我有一个看似简单的任务..
获取一个文件,打开它,将字节流作为 AES key ,然后实例化一个 javax.crypto.spec.SecretKeySpec
在 Android Kotlin 中
if (key == null) {
val my_bytes: ByteArray = byteArrayOf(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0)
val algo = "AES"
val secretKey = SecretKeySpec(my_bytes, algo)
saveSecretKey(sharedPref, secretKey!!)
return secretKey
}
编辑:
SecretKeySpec()
现在工作。我只需要知道如何正确地将文件中的字节放入 android 应用程序中。应用程序中的硬编码是否不安全?我应该将 key 存储为文件并从 android 文件系统中读取吗?
最佳答案
如果您将 key 作为文件存储在外部驱动器上,则会发生以下情况:
2.1 被用户删除
2.2 被您想要的应用程序/人阅读
由于 key 是对称的,并且可以用于加密和解密。
现在,对于我们的鸟类:
从磁盘加载文件:This explains it quite well
关于android - 在 Kotlin 中使用 ByteArrays 和 SecretKeySpec,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60031097/