我是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. 将存储在变量中的文本添加到要保存到文本文件的字符串中
- 4. 保存由Javascript生成的JSON字符串作为文件:web2py
- 5. 将文件保存到外部存储器中的文件夹并共享
- 6. JList选择字符串,并能够保存在文本文件
- 7. 单向加密,将散列字符串保存到文件中?
- 8. 将持久文本文件保存在内部存储器中
- 9. 保存在内部存储中的文件没有被保存
- 10. Android:将android设备的内部存储器中的文本文件存储在外部存储卡中?
- 11. 读取外部文本文件并存储到数组中
- 12. Android外部存储加密
- 13. 将字符串保存为csv文件?
- 14. Android:无法看到保存在外部存储上的文件
- 15. 将每行保存为文本文档中的字符串
- 16. 存储加密文本
- 17. Bash:如果字符串存在,请检查json响应并写入文件
- 18. 如何解析从httppost作为字符串存储的响应
- 19. C#将字符串变量存储为文本文件.txt
- 20. 将大平面文件文本存储为字符串
- 21. 在resx文件中存储本地化的字符串?
- 22. 在本地文件中缓存外部JSON API - 不起作用
- 23. 下载的文本文件,并保存为一个的NodeJS串
- 24. 保存JSON字符串文件无法正常工作
- 25. Iphone保存文件外部
- 26. 无法访问存储在缓存中的JSON文本文件
- 27. 字符串保存为JSON在Django
- 28. 将文本文件拆分为单独的文件,并将子字符串保存为文件名;蟒蛇
- 29. 从Python中的文件存储和读取加密的字符串
- 30. 如何解密(AES)存储在本地存储的加密文件
谢谢你soo多@zeeali,让我试试你的代码。 – nidhi
欢迎您!你可以接受我的答案,如果它可以帮助你! – zeeali