Nodes & Blockchain Clients

Flutter Secure StorageEncrypted Key-Value Storage for Developers

A free open source Flutter library for encrypted storage on iOS, Android, Linux and Windows, with install steps, safety checks and FAQ.

Free Open source Windows: Yes v8.0.0 Updated 29 Aug 2023
8 min read Last update 29 Aug 2023 github.com/aura-nw/flutter_secure_storage

Flutter Secure Storage is a free, open source library for Flutter developers who need to keep small pieces of sensitive data, such as session tokens or passwords, out of plain-text files. It is a developer tool rather than a standalone Windows application, although Windows is listed as a supported platform alongside macOS, Linux, Android, and iOS. Before you adopt it, note that its latest release is v8.0.0 and its last code update dates to August 2023, so the project has not seen changes in more than two years.

The library hands storage to each platform's native security layer: the Keychain on iOS, an AES-based scheme protected by the Android KeyStore on Android, and libsecret on Linux. Its main appeal is that app code can use one interface across systems. The sections below cover how it works, how to set it up, and what to check before you rely on it in a product.

02

What Is Flutter Secure Storage?

Flutter Secure Storage gives Flutter code a simple key-value interface. An app writes a value under a name, reads it back later, or deletes it. The difference from ordinary local settings storage is where the data lives and how it is protected. Instead of saving a token in a plain file or a general preferences store, the library places it in a platform-backed secure container.

The practical benefit is consistency. Developers call the same methods on every supported platform, while the library decides which native mechanism to use underneath. That keeps business logic clean and moves the platform-specific security details into one dependency.

03

Who Flutter Secure Storage Is For

The library is aimed at developers building Flutter apps that handle personal or account data. A common case is an app that keeps an access token after login so users do not have to sign in every time. Another is an app that stores a refresh token or a small API credential that should not sit in readable form on the device.

It is less suited to people looking for a finished desktop tool. Someone who only wants to manage files or run a node will not find an end-user interface here. The library is a building block, and its value shows up inside the app that uses it, not in a window a user opens directly.

04

How Platform Keystores Protect Stored Values

A keystore is an operating system service that holds cryptographic keys or credentials separately from ordinary app files. Apps request operations through the service, and the key material is kept behind system-level controls. This makes it harder for another app, or someone copying files off a device, to read the data directly.

Flutter Secure Storage follows this model on each platform. On Android it wraps an AES key with RSA, and on iOS it delegates to the Keychain. Understanding this helps developers reason about risk. The library reduces exposure of stored values, but it cannot protect data from a compromised operating system or from code that the user has granted access to.

05

Key features

Keychain Storage on iOS

On iPhone and iPad, values are kept in the iOS Keychain, the operating system's protected store for credentials. The library relies on that system service rather than building its own encryption. The KeychainAccessibility setting controls when stored items can be read, which helps apps that should only expose data while the device is unlocked.

Layered AES and RSA Encryption on Android

On Android, values are encrypted with AES. The AES secret key is then encrypted with RSA, and the RSA key is stored in the Android KeyStore. This layering means the raw encryption key never sits in app storage in readable form.

EncryptedSharedPreferences Option

From version 5.0.0, developers can switch Android storage to EncryptedSharedPreferences by enabling a setting in the Android options. Apps upgrading from 4.2.1 can use this path to migrate existing stored values.

Linux Storage Through libsecret

On Linux, the library uses libsecret, a common interface to desktop secret services. Credentials go to the system keyring rather than a plain file in the app's data folder.
06

How to install Flutter Secure Storage on Windows

  1. 1

    Get the Package from the Official Source

    Open the project's GitHub repository, linked from the catalog page, and go to its Releases page for the current version. Download only from the official source, and avoid copies posted on other sites. Check the release notes for the latest version number before you start.

  2. 2

    Verify the Downloaded File

    Compare the SHA-256 checksum of the file you downloaded with the value published with the release. If the release provides a signature, verify it as well. Do not continue if the hash does not match, and delete the file.

  3. Add the Library to Your Flutter Project

    Add the package to your Flutter project's dependencies, following the installation notes in the repository README. Then run dependency resolution and build for Windows to confirm the project compiles. Test storage read and write operations on each platform you plan to ship.

07

How to use Flutter Secure Storage

Using the library is a development task rather than a point-and-click process. The steps below assume you already have a Flutter project set up with Windows as a target.

  1. Read the README and the changelog in the repository, paying attention to the notes about the IOSAccessibility to KeychainAccessibility rename.
  2. Add the dependency to your pubspec.yaml file and fetch packages.
  3. Create a storage instance in the part of your app that handles sign-in or session data.
  4. Write a value under a clear key name, such as a token identifier, rather than storing whole user records.
  5. Read the value back when the app starts, and handle the case where no value exists yet.
  6. Delete the value during sign-out so stale credentials do not remain on the device.
  7. On Android, enable the EncryptedSharedPreferences option if your app runs on version 5.0.0 or later, and test a migration from older versions on a copy of real data.
08

Pros & cons

Pros
  • Free and open source, with source code available on GitHub
  • Uses native secure storage on iOS, Android, and Linux rather than custom encryption schemes
  • One Flutter codebase covers several operating systems, including Windows
  • Offers EncryptedSharedPreferences on Android from version 5.0.0
Cons
  • The last code update was August 29, 2023, so it may lag behind recent Flutter and operating system changes
  • The rename from IOSAccessibility to KeychainAccessibility was poorly documented in the changelog
  • It is a developer library, not an end-user application
  • Upgrading from 4.2.1 to 5.0.0 requires attention to Android options during migration
09

Is Flutter Secure Storage safe?

The project has not received a code update since August 2023, which is more than two years ago, so review its open issues and recent commits before using it in production. Download only from the official GitHub repository or its Releases page. Verify the SHA-256 checksum or signature of any file before you use it, and never enter a seed phrase, password, or key into a third-party website that claims to offer this library. Although this library does not manage cryptocurrency, it stores sensitive values, so treat it with the same care as any key-handling tool. Review the code path that reads and writes secrets in your own app, and check the latest version on the official website before release.

  • Official source only. Download from github.com/aura-nw/flutter_secure_storage. Ignore ads and lookalike domains.
  • Check the SHA-256. Compare the installer hash with the value the developer publishes before running it.
  • Never share your seed phrase. No developer, support agent or website — including CryptApps — will ever ask for it.
10

Alternatives

Most entries in this catalog, including Geth, Bitcoin Core, and Nethermind, are blockchain nodes or execution clients that run as separate programs and sync with a network. Flutter Secure Storage works in a different layer. It does not connect to any chain, and its job is to keep an app's small secrets protected on the device. If you are comparing it with node software, the real choice is about whether you need a library for your own app or a program that participates in a network. For developers looking at secure storage options, the relevant comparison is with other Flutter or mobile secure storage packages, which differ in how they handle Android encryption and how actively they are maintained.

11

Specifications

Price
Free
Type
Open source
License
—
Latest version
v8.0.0
Last update
29 Aug 2023
Windows support
Yes (Windows build or installer)
Source code
github.com/aura-nw/flutter_secure_storage
12

Frequently asked questions

No. Flutter Secure Storage is a library that Flutter developers add to their projects. It does not hold cryptocurrency and does not have a standalone interface for end users. Windows is listed as a supported platform, but the library's value appears inside the app you build with it.

It uses native platform mechanisms, including the iOS Keychain, Android KeyStore-backed encryption, and libsecret on Linux, which is a sound design. However, the last code update was in August 2023. Review the code, check recent activity, download only from the official GitHub repository, and verify the checksum before relying on it.

Yes, Windows is listed as a supported platform for the library. Using it on Windows means building a Flutter application that targets Windows. Test read and write behavior on that platform, because the library's most detailed platform notes cover iOS, Android, and Linux.

EncryptedSharedPreferences is an Android storage option that the library can use from version 5.0.0 onward. You enable it in the Android options. It is useful for apps migrating from older versions, and it helps keep stored values encrypted on the device.

The latest version is v8.0.0, but the last code update was on August 29, 2023. That is more than two years ago, so there may be fewer recent fixes than you would expect from an actively developed project. Check the repository's commit history before adopting it.

Yes, the library is free and open source. You can read the source code on GitHub and use it in your projects under its license terms. There is no paid tier mentioned for the library itself, so costs come only from your own development and testing time.

The option previously called IOSAccessibility was renamed to KeychainAccessibility. The change was not clearly recorded in the changelog, so developers upgrading may miss it. Search your code for the old name and update it to the new one, then test on iOS.

13

Verdict

Flutter Secure Storage is a practical choice for developers building Flutter apps that need to keep tokens or small credentials protected on iOS, Android, Linux, and Windows. Its design relies on platform security services, which is the right approach. The main drawbacks are the lack of recent code updates since August 2023 and the poorly documented rename of a key option. It is not a fit for people looking for an end-user program. Evaluate the code carefully before shipping, and compare it with other secure storage packages if maintenance activity matters to your project.

Download now