我是Android中的文本文件加密中的新功能。並嘗試了很多文本加密的例子,但我很困惑如何申請。 我有來自json響應的5個字符串記錄,我想將它們保存在文本文件(外部存儲)和「加密格式」中。我試過了cipher_text_encoding的代碼,但是它真的和很多類混淆了。 請建議我爲文本加密好教程或給我提示如何編碼。 在此先感謝。加密並保存在外部存儲中作爲文本文件的Json的字符串響應
0
A
回答
0
加密和解密使用AES私鑰算法
產生AES的密鑰:
public static byte[] generateAesSecretKey(){
String SALT2 = "strong_salt_value";
String username = "user_name";
String password = "strong_password";
byte[] key = (SALT2 + username + password).getBytes();
SecretKey secretKeySpec = null;
try {
MessageDigest sha = MessageDigest.getInstance("SHA-1");
key = sha.digest(key);
key = Arrays.copyOf(key, 16);
secretKeySpec = new SecretKeySpec(key, "AES");
} catch (Exception e) {
e.printStackTrace();
}
return secretKeySpec.getEncoded();
}
加密:
public static byte[] encodeFile(byte[] secretKey, byte[] fileData) {
SecretKeySpec skeySpec = new SecretKeySpec(secretKey, "AES");
byte[] encrypted = null;
try {
Cipher cipher = Cipher.getInstance("AES");
cipher.init(Cipher.ENCRYPT_MODE, skeySpec);
encrypted = cipher.doFinal(fileData);
// Now write your logic to save encrypted data to sdcard here
} catch (NoSuchAlgorithmException e) {
e.printStackTrace();
} catch (NoSuchPaddingException e) {
e.printStackTrace();
} catch (InvalidKeyException e) {
e.printStackTrace();
} catch (IllegalBlockSizeException e) {
e.printStackTrace();
} catch (BadPaddingException e) {
e.printStackTrace();
} catch (Exception e){
e.printStackTrace();
}
return encrypted;
}
解密:
public static byte[] decodeFile(byte[] key, byte[] fileData) {
SecretKeySpec skeySpec = new SecretKeySpec(key, "AES");
byte[] decrypted = null;
try {
Cipher cipher = Cipher.getInstance("AES");
cipher.init(Cipher.DECRYPT_MODE, skeySpec);
decrypted = cipher.doFinal(fileData);
} catch (NoSuchAlgorithmException | NoSuchPaddingException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (InvalidKeyException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IllegalBlockSizeException | BadPaddingException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch(Exception e){
// for all other exception
e.printStackTrace();
}
return decrypted;
}
希望以上方法對你有用!
0
因爲每個初學者都會感到困惑,而不是自己動手,一切都學會利用代碼重用或書面共享庫。這將利用代碼抽象,因爲您只對JSON/Sting的加密和解密感興趣。
對於一個完整的文件:
對於可重複使用的(爪哇/ Android的)庫:
簡體le用法:
String plainText = "Your String";
String encryptionKey = "Your Encryption Key";
String IV = "Your Initial Vector";
// To Encrypt
String cipherText = AES.encrypt(plainText, encryptionKey, IV);
// To Decrypt returned value same as plainText
String originalText = AES.decrypt(cipherText, encryptionKey, IV);
乾杯。
相關問題
- 1. 如何存儲JSON響應並保存到JSON文件
- 2. 在Android外部存儲中打開文件並閱讀JSON字符串
- 3. 如何解析保存在文本文件中的json響應
- 4. 將存儲在變量中的文本添加到要保存到文本文件的字符串中
- 5. 保存由Javascript生成的JSON字符串作爲文件:web2py
- 6. JSON響應與字節[],如何在C#中存儲爲文件?
- 7. 將文件保存到外部存儲器中的文件夾並共享
- 8. Django:保護/加密存儲的文件
- 9. 將Java中的JSON字符串保存爲文件
- 10. JList選擇字符串,並能夠保存在文本文件
- 11. Libgdx保存/加載文件在Android外部存儲
- 12. 如何在字符串中保存文本文件的內容
- 13. 單向加密,將散列字符串保存到文件中?
- 14. 寫入並訪問JSON文件保存到內部存儲器
- 15. 將持久文本文件保存在內部存儲器中
- 16. 保存在內部存儲中的文件沒有被保存
- 17. Android:將android設備的內部存儲器中的文本文件存儲在外部存儲卡中?
- 18. 讀取外部文本文件並存儲到數組中
- 19. Android外部存儲加密
- 20. 將字符串保存到Java中的文本文件中
- 21. 從edittext中獲取文本並將其存儲爲字符串
- 22. Android:無法看到保存在外部存儲上的文件
- 23. 將字符串保存爲csv文件?
- 24. 存儲加密文本
- 25. 將每行保存爲文本文檔中的字符串
- 26. Bash:如果字符串存在,請檢查json響應並寫入文件
- 27. 在文本文件中存儲字符串變量
- 28. 將文本文件存儲在非字符串數組中
- 29. 將字符串保存到AS3中的文本文件
- 30. 使用edittext中的字符串保存文本或CSV文件
謝謝你soo多@zeeali,讓我試試你的代碼。 – nidhi
歡迎您!你可以接受我的答案,如果它可以幫助你! – zeeali