如何解决在流中找不到与密文匹配的密钥
我在解密加密文件时遇到异常。 decryptFile() 方法中发生异常。发生异常的行是
while (fileInputStream.read(buffer).also { read = it } != -1) {
完整代码如下
fun encryptFile(source: File,destination: File,applicationContext: Context) {
val mainKey = MasterKey.Builder(applicationContext,MasterKey.DEFAULT_MASTER_KEY_ALIAS)
.setKeyScheme(MasterKey.KeyScheme.AES256_GCM)
.build()
val encryptedFile = EncryptedFile.Builder(
applicationContext,destination,mainKey,EncryptedFile.FileEncryptionScheme.AES256_GCM_HKDF_4KB
).build()
val fileOutputStream = encryptedFile.openFileOutput()
val fileInputStream = FileInputStream(source)
val buffer = ByteArray(1024)
var read: Int
while (fileInputStream.read(buffer).also { read = it } != -1) {
fileOutputStream.write(buffer,read)
}
fileInputStream.close()
fileOutputStream.flush()
fileOutputStream.close()
source.delete()
destination.renameto(source)
}
fun decryptFile(source: File,applicationContext: Context){
val mainKey = MasterKey.Builder(applicationContext,source,EncryptedFile.FileEncryptionScheme.AES256_GCM_HKDF_4KB
).build()
val fileInputStream = encryptedFile.openFileinput()
val fileOutputStream = FileOutputStream(destination)
val buffer = ByteArray(1024)
var read: Int
while (fileInputStream.read(buffer).also { read = it } != -1) {
fileOutputStream.write(buffer,read)
}
fileInputStream.close()
fileOutputStream.flush()
fileOutputStream.close()
source.delete()
destination.renameto(source)
}
我正在使用安全性的 alpha 版本。为什么我使用安全的 alpha 版本,因为稳定版本在官方文档中被标记为已弃用
implementation("androidx.security:security-crypto:1.1.0-alpha03")
implementation("androidx.security:security-identity-credential:1.0.0-alpha02")
implementation("androidx.security:security-app-authenticator:1.0.0-alpha02")
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。