我成功地从服务器下载文件并将其保存到我的 SDCARD 中,但我需要在保存到 SDCARD 之前对文件进行加密
最佳答案
将 CipherOutputStream
或 CipherInputStream
与 Cipher 和您的 FileOutputStream/FileInputStream 一起使用。我会建议像 Cipher.getInstance("AES/CBC/PKCS5Padding");
这样的构造函数调用。如果您想使用密码,请确保您确实使用了良好的 key 派生机制(查找基于密码的加密)。对于多个文件,使用 NONCE 作为 IV(参见维基百科)。
在对字符串进行编码/解码时,一定要指定字符编码,否则当平台编码与之前的编码不同时,您就会遇到麻烦。换句话说,不要使用 String.getBytes()
,而是使用 String.getBytes(Charset.forName("UTF-8"))
。
为了更安全,请添加安全校验和(MAC 或 HMAC),并且不要忘记在计算开始时添加 NONCE。
关于Android: 从服务器下载文件后,如何在保存到 SDCARD 之前加密文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15196083/