gpt4 book ai didi

java - 在 Java 中加密和解密 List

转载 作者:行者123 更新时间:2023-11-29 04:54:04 26 4
gpt4 key购买 nike

我有一个移动应用程序和一个桌面应用程序。我在桌面应用程序中有多个列表。我想加密列表中的所有值并发送到文件,稍后我想从移动应用程序中检索文件中的数据并解密值并显示它们。我第一次使用加密和解密概念。我尝试通过加密发送一个字符串并且它有效。但我想加密很多列表。我该怎么做。任何代码都会有帮助。

用于加密:

 KeyGenerator keygenerator = KeyGenerator.getInstance("DES");
SecretKey myDesKey = keygenerator.generateKey();
Cipher desCipher;
desCipher = Cipher.getInstance("DES");
byte[] text = "Hello".getBytes("UTF8");


desCipher.init(Cipher.ENCRYPT_MODE, myDesKey);
byte[] textEncrypted = desCipher.doFinal(text);
String s = new String(textEncrypted);
System.out.println(s);

用于解密

  desCipher.init(Cipher.DECRYPT_MODE, myDesKey);
byte[] textDecrypted = desCipher.doFinal(textEncrypted);
s = new String(textDecrypted);
System.out.println(s);

我将此代码用于字符串,但如何使用列表实现相同的效果。请帮忙。

提前致谢。

最佳答案

您可以通过以下方式将列表转换为字节数组

ByteArrayOutputStream bos = new ByteArrayOutputStream();
ObjectOutputStream oos = new ObjectOutputStream(bos);
oos.writeObject(list);
byte[] text = bos.toByteArray();

然后照常加密文本。然后你可以将解密的字节数组转换为列表

ByteArrayInputStream bis = new ByteArrayInputStream(textDecrypted);
ObjectInputStream ois = new ObjectInputStream(bis);
List<String> result = (List<String>) ois.readObject();

例子:

        List<String> list = new ArrayList<String>();
list.add("Hello");
list.add(" World!!");

System.out.println(list);

ByteArrayOutputStream bos = new ByteArrayOutputStream();
ObjectOutputStream oos = new ObjectOutputStream(bos);
oos.writeObject(list);
byte[] text = bos.toByteArray();

KeyGenerator keygenerator = KeyGenerator.getInstance("DES");
SecretKey myDesKey = keygenerator.generateKey();
Cipher desCipher;
desCipher = Cipher.getInstance("DES");

desCipher.init(Cipher.ENCRYPT_MODE, myDesKey);
byte[] textEncrypted = desCipher.doFinal(text);

desCipher.init(Cipher.DECRYPT_MODE, myDesKey);
byte[] textDecrypted = desCipher.doFinal(textEncrypted);

ByteArrayInputStream bis = new ByteArrayInputStream(textDecrypted);
ObjectInputStream ois = new ObjectInputStream(bis);
List<String> result = (List<String>) ois.readObject();

System.out.println(result);

关于java - 在 Java 中加密和解密 List<String>,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34389464/

26 4 0
文章推荐: MySQL - pt-online-schema-change 对数据库性能的影响
文章推荐: php - 更高效的等级制度
文章推荐: ios - 应用程序启动时启动短信应用程序
文章推荐: java - SomeClass 什么时候合适/有用