Android:从服务器下载文件后,如何在保存到SDCARD之前加密文件?

时间:2013-03-04 06:51:48

标签: android

我成功下载并将文件从服务器保存到SDCARD,但我需要加密该文件,然后再保存到 SDCARD

1 个答案:

答案 0 :(得分:2)

CipherOutputStreamCipherInputStream与Cipher和FileOutputStream / FileInputStream一起使用。我会向构造函数调用提出类似Cipher.getInstance("AES/CBC/PKCS5Padding");的建议。如果您想使用密码,请确保使用良好的密钥派生机制(查找基于密码的加密)。对于多个文件,请使用NONCE作为IV(参见维基百科)。

在编码/解码字符串时始终指定字符编码,否则当平台编码与前一个编码不同时,您将遇到麻烦。换句话说,请勿使用String.getBytes(),而是使用String.getBytes(Charset.forName("UTF-8"))

为了使其更安全,请添加安全校验和(MAC或HMAC),并且不要忘记在计算开始时添加NONCE。