如何在 flutter sharedprefrence 中存储加密类型

How to store an Encrypted type in flutter sharedprefrence

我正在用 flutter 设计一个应用程序,我已经使用 encrypt 成功地加密了一个字符串。现在我想将这个加密数据存储在 sharedpreference 中,这样我可以稍后检索它并在使用前解密它。我已经尝试过 setString() 它不起作用,因为它似乎 'Encrypted' 本身就是一种类型,因此不适用于字符串。有什么解决办法吗?

这是我的代码

Encrypted runEncrypt( String caption) {
    final key = Key.fromUtf8('u^Hrf64hFrM08HuytDeMK7654DgJlP');
    final iv = IV.fromLength(16);

    final encryptPro = Encrypter(AES(key));

    final encrypted = encryptPro.encrypt(caption, iv: iv);

    return encrypted;
  }

/////
Encrypted keyz=runEncrypt('this is the key');
pref.setString("key",keyz);

您可以使用加密对象的 base64 属性 it returns a String。 在 source code of the package 它说它 returns Encrypted 作为 Base64 字符串表示。

pref.setString("key", keyz.base64);

解密时使用相同的编码

Encrypter.decrypt64(valueFromSharedPref)