第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何在Android中加密和解密文件?

如何在Android中加密和解密文件?

湖上湖 2019-08-30 15:02:57
我想加密文件并將其存儲在SD卡中。我想解密該加密文件并再次將其存儲在SD卡中。我試圖通過打開文件流加密文件并加密但是它不起作用。我想知道如何做到這一點。
查看完整描述

3 回答

?
jeck貓

TA貢獻1909條經(jīng)驗 獲得超7個贊

使用a CipherOutputStream或CipherInputStreama Cipher和你的FileInputStream/ FileOutputStream。


我建議像Cipher.getInstance("AES/CBC/PKCS5Padding")創(chuàng)建Cipher課程一樣。CBC模式是安全的,并且沒有針對非隨機明文的ECB模式的漏洞。它應(yīng)該存在于任何通用加密庫中,以確保高兼容性。


如果要使用相同的密鑰加密多個文件,請不要忘記使用由安全隨機生成器生成的初始化向量(IV)。您可以在密文開頭加上普通IV的前綴。它總是正好一個塊(16字節(jié))。


如果您想使用密碼,請確保使用良好的密鑰派生機制(查找基于密碼的加密或基于密碼的密鑰派生)。PBKDF2是最常用的基于密碼的密鑰派生方案,它存在于大多數(shù)Java運行時中,包括Android。請注意,SHA-1是一個有點過時的哈希函數(shù),但它在PBKDF2中應(yīng)該沒問題,并且目前提供最兼容的選項。


在編碼/解碼字符串時始終指定字符編碼,否則當平臺編碼與前一個編碼不同時,您將遇到麻煩。換句話說,不要使用String.getBytes()但使用String.getBytes(StandardCharsets.UTF_8)。


為了使其更安全,請通過在密文和IV上添加安全校驗和(MAC或HMAC)來添加加密完整性和真實性,最好使用不同的密鑰。如果沒有認證標簽,則可以以不能檢測到改變的方式改變密文。


請注意,CipherInputStream 可能 不會報告BadPaddingException,這包括BadPaddingException為經(jīng)過身份驗證的密碼生成,例如GCM。這將使流不兼容并且對于這種經(jīng)過驗證的密碼不安全。


查看完整回答
反對 回復(fù) 2019-08-30
?
青春有我

TA貢獻1784條經(jīng)驗 獲得超8個贊

您可以使用java-aes-crypto或Facebook的隱藏


Java的AES-密碼


從回購報價中引用


一個簡單的Android類,用于加密和解密字符串,旨在避免大多數(shù)此類遭受的經(jīng)典錯誤。


Facebook的隱瞞


從回購報價中引用


Conceal提供簡單的Android API,用于執(zhí)行數(shù)據(jù)的快速加密和身份驗證


查看完整回答
反對 回復(fù) 2019-08-30
  • 3 回答
  • 0 關(guān)注
  • 1051 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號