当前位置: 首页 > 知识库问答 >
问题:

Android将ArrayList加密/解密为字符串

孙斌
2023-03-14

所以我使用下面的代码来加密/解密可以存储在设备首选项中的字符串值,但我知道需要添加一个加密/解密ArrayList的方法,该方法也可以存储在首选项中(所以我猜加密需要将arraylist转换为字符串,然后解密需要将该字符串转换回arraylist)。由于我对Android/Java非常陌生,因此我很难弄清楚如何做到这一点,因此任何帮助都将不胜感激。

public String encrypt(String key, String data) {
    if (key == null || data == null)
        return null;
    try {
        DESKeySpec desKeySpec = new DESKeySpec(key.getBytes(charsetName));
        SecretKeyFactory secretKeyFactory = SecretKeyFactory.getInstance(algorithm);
        SecretKey secretKey = secretKeyFactory.generateSecret(desKeySpec);
        byte[] dataBytes = data.getBytes(charsetName);
        Cipher cipher = Cipher.getInstance(algorithm);
        cipher.init(Cipher.ENCRYPT_MODE, secretKey);
        return Base64.encodeToString(cipher.doFinal(dataBytes), base64Mode);
    } catch (Exception e) {
        return null;
    }
}

public String decrypt(String key, String data) {
    if (key == null || data == null)
        return null;
    try {
        byte[] dataBytes = Base64.decode(data, base64Mode);
        DESKeySpec desKeySpec = new DESKeySpec(key.getBytes(charsetName));
        SecretKeyFactory secretKeyFactory = SecretKeyFactory.getInstance(algorithm);
        SecretKey secretKey = secretKeyFactory.generateSecret(desKeySpec);
        Cipher cipher = Cipher.getInstance(algorithm);
        cipher.init(Cipher.DECRYPT_MODE, secretKey);
        byte[] dataBytesDecrypted = (cipher.doFinal(dataBytes));
        return new String(dataBytesDecrypted);
    } catch (Exception e) {
        return null;
    }
}

共有1个答案

葛霄
2023-03-14

序列化ArrayList

public static String ArrayListToString(ArrayList<LinkedHashMap> list) {
    Gson serializer = new Gson();
    return serializer.toJson(list);
}

然后解密后做反序列化。

您需要在项目中引用Google Gson。

 类似资料:
  • 我得到的输出是: 有人能解释一下是怎么回事吗?我在互联网上看到了很多这样的例子,它们看起来都很好。但在这里,文本没有被解密。 ps:我使用的版本是

  • 我感兴趣的是构建一个个人使用的小应用程序,它将使用JavaScript在客户端加密和解密信息。加密的信息将存储在服务器上的数据库中,但不会存储解密的版本。 它不一定要是超级duper安全的,但我想使用一个当前未中断的算法。 理想情况下我可以做一些 生成编码字符串,以及类似于 以后再解码。 到目前为止,我已经看到了以下内容:http://bitwiseshiftleft.github.io/sjcl

  • 我正在尝试用python中的pycrypto加密/解密。在大多数情况下,事情进展顺利,但在解密数据时,我遇到了一个奇怪的问题。我尝试对一些JPG进行加密/解密以进行测试,尽管它们加密/解密没有问题,但解密的文件无法打开/已损坏。为了找到问题,我保存了一个文本文件,其中有一个类似于“测试这个文件的完整性”之类的随机句子,它只有在“…完整性”之类的内容之后才能正确解密,完整性之前的所有内容仍然是乱码。

  • 问题内容: 我是密码学的新手。我希望学习如何在文件中加密和解密文本……当我在net中引用相关文章时。我怀疑对同一文本进行多次加密后,单个文本的加密文本是否会相同?谁能解决我的疑问? 问题答案: 这是使用该类的示例:

  • 本文向大家介绍php加密解密字符串示例,包括了php加密解密字符串示例的使用技巧和注意事项,需要的朋友参考一下 收录了一些比较经典的PHP加密解密函数代码,分享给大家。加密解密原理一般都是通过一定的加密解密算法,将密钥加入到算法中,最终得到加密解密结果。     希望本文所述对大家PHP程序设计有所帮助。

  • 本文向大家介绍PHP加密解密字符串汇总,包括了PHP加密解密字符串汇总的使用技巧和注意事项,需要的朋友参考一下 项目中有时我们需要使用PHP将特定的信息进行加密,也就是通过加密算法生成一个加密字符串,这个加密后的字符串可以通过解密算法进行解密,便于程序对解密后的信息进行处理。 最常见的应用在用户登录以及一些API数据交换的场景。 笔者收录了一些比较经典的PHP加密解密函数代码,分享给大家。加密解密