问题描述
我在解密加密文件时遇到异常。 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 (将#修改为@)