1

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

4

1 回答 1

3

使用 a CipherOutputStreamorCipherInputStream与 Cipher 和您的 FileOutputStream / FileInputStream。我建议像Cipher.getInstance("AES/CBC/PKCS5Padding");构造函数调用一样。如果您想使用密码,请确保您确实使用了良好的密钥派生机制(查找基于密码的加密)。对于多个文件,对 IV 使用 NONCE(参见维基百科)。

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

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

于 2013-03-04T06:53:27.583 回答