0
我成功下載並從服務器上的文件保存到SD卡我的,但我需要加密文件之前保存到SD卡Android:從服務器下載文件後,如何在保存到SDCARD之前對文件進行加密?
我成功下載並從服務器上的文件保存到SD卡我的,但我需要加密文件之前保存到SD卡Android:從服務器下載文件後,如何在保存到SDCARD之前對文件進行加密?
使用CipherOutputStream
或CipherInputStream
用密碼和你的FileOutputStream中/的FileInputStream。我會建議像構造函數調用Cipher.getInstance("AES/CBC/PKCS5Padding");
。如果你想使用密碼,請確保你使用了一個好的密鑰派生機制(查找基於密碼的加密)。對於多個文件,請爲IV使用NONCE(請參閱wikipedia)。
總是在編碼/解碼字符串時指定字符編碼,否則當平臺編碼與上一個不同時會遇到麻煩。換句話說,不要使用String.getBytes()
,而是使用String.getBytes(Charset.forName("UTF-8"))
。
爲了使其更安全,請添加安全校驗和(MAC或HMAC),並且不要忘記在計算開始時添加NONCE。
這是我在這裏的代碼,我使用CipherOutputStream但文件不加密,而寫入SDCARD InputStream input = new BufferedInputStream(url.openStream(),8192); \t File mediaDir = new File(「/ sdcard/download/media」); (!mediaDir.exists()){ \t mediaDir.mkdir(); \t}文件resolveMeSDCard =新文件(「/ sdcard/download/media/downloadedfile.jpg」); \t resolveMeSDCard.createNewFile(); \t OutputStream output = new FileOutputStream(resolveMeSDCard); – 2013-03-04 09:08:31