我正在使用androidx.security.crypto库来加密文本文件。我是following the docs here。
val keyGenParameterSpec = MasterKeys.AES256_GCM_SPEC
val masterKeyAlias = MasterKeys.getOrCreate(keyGenParameterSpec)
val secretFile = File("/storage/sdcard0/DCIM/Camera/testfile.txt", "super_secret")
val encryptedFile = EncryptedFile.Builder(
secretFile,
applicationContext,
masterKeyAlias,
EncryptedFile.FileEncryptionScheme.AES256_GCM_HKDF_4KB)
.setKeysetAlias("file_key1") //this is optional
.setKeysetPrefName("secret_shared_prefs1") //this is optional
.build()
}
加密后,如何将其保存到文件中?
取自Android Cryptography,您将构建一个加密文件,如代码示例所示,然后使用FileOutputStream
方法获得一个openFileOutput()
。您可以像普通的FileOutputStream一样使用它,也可以使用OutputStreamWriter或类似的东西。从Java的website:
// Write to a file.
BufferedWriter writer = new BufferedWriter(new OutputStreamWriter(
encryptedFile.openFileOutput()));
writer.write("MY SUPER-SECRET INFORMATION");
或在科特林:
// Write to a file.
encryptedFile.openFileOutput().bufferedWriter().use {
it.write("MY SUPER-SECRET INFORMATION")
}