我正在尝试使用 api 令牌在 flutter 中构建一个应用程序,我想知道 SharedPrefences 和 flutter_secure_storage 包是否做相同的事情或者它们是否不同。
flutter_secure_storage 包使用带有 MODE_PRIVATE 的 SharedPreferences,如您所见here:
preferences = context.getSharedPreferences(SHARED_PREFERENCES_NAME, Context.MODE_PRIVATE);
它还通过 AES 使用额外的加密。来自自述文件:
AES encryption is used for Android. AES secret key is encrypted with RSA and RSA key is stored in KeyStore
。您可以在源代码中找到详细信息。
对于安全令牌和其他敏感数据,使用
flutter_secure_storage
而不是私有模式的原始 SharedPreferences 会更安全。
来自包文档:Flutter Secure Storage 使用 WebCrypto 进行实验性实现。此时使用需要您自担风险。
基本上,为什么您应该使用flutter_secure_storage,因为它提供了另一个安全层而不是共享首选项。在共享首选项中,数据按原样存储为键值对。 而 flutter_Secure_Storage 则通过加密密钥值在存储数据之上提供了另一个安全层。它使用IOS Keychain,这是在 IOS 操作系统的加密数据库中存储少量用户数据的机制。此外,对于 Android 操作系统,还有Android Keystore 机制。因此,如果您希望在移动应用程序中存储一些重要的数据,那么您绝对应该选择flutter_secure_storage。在这里您可以了解如何使用 flutter_secure_storage 和 Shared_Preferences。
共享首选项 ---> Shared_Preferences_Implementation
Flutter 安全存储 --->
Flutter_Secure_Storage_Implementation