我已成功将文件从服务器下载并保存到我的 SDCARD,但我需要先加密文件,然后再保存到SDCARD
问问题
1140 次
1 回答
3
使用 a CipherOutputStream
orCipherInputStream
与 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 回答