You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Ionic如何使用Android Keystore与iOS Keychain实现认证令牌加密存储

Ionic Capacitor 安全加密存储授权令牌实现方案

现有问题说明

你当前使用的默认Capacitor Storage(已合并入Capacitor官方@capacitor/preferences插件)默认未开启加密,才会出现令牌明文存储在IndexedDB相关文件的问题,root/越狱设备可直接提取明文数据。

实现方案

方案1:官方@capacitor/preferences插件开启加密(推荐,迁移成本最低)

Capacitor 4及以上版本的Preferences插件原生支持对接Android Keystore、iOS Keychain实现存储内容自动加密,无需额外引入第三方依赖:

  • 安装插件并同步原生项目
npm install @capacitor/preferences
npx cap sync
  • 在capacitor.config.ts中开启加密配置
import { CapacitorConfig } from '@capacitor/cli';

const config: CapacitorConfig = {
  // 其他原有配置
  plugins: {
    Preferences: {
      encrypt: true
    }
  }
};

export default config;
  • 基础用法和原Capacitor Storage完全一致,原有代码几乎不需要修改:
import { Preferences } from '@capacitor/preferences';

// 存储授权令牌
await Preferences.set({
  key: 'auth_token',
  value: '你的登录授权令牌'
});

// 读取授权令牌
const { value: authToken } = await Preferences.get({ key: 'auth_token' });

// 删除授权令牌
await Preferences.remove({ key: 'auth_token' });

开启加密后,所有存储内容会自动用系统安全硬件生成的密钥加密,加密密钥不会暴露给应用层,就算拿到root/越狱设备的文件权限,也无法直接解密得到明文令牌。

方案2:社区加密存储插件(适合更高安全要求场景)

如果需要额外的安全配置(比如生物识别校验才能读取、密钥有效期设置等),可以使用Capacitor社区维护的@capacitor-community/encrypted-storage插件:

  • 安装插件并同步
npm install @capacitor-community/encrypted-storage
npx cap sync
  • 基础用法
import { EncryptedStorage } from '@capacitor-community/encrypted-storage';

// 初始化插件,自动对接系统安全存储生成密钥
await EncryptedStorage.init();

// 存储令牌
await EncryptedStorage.set({
  key: 'auth_token',
  value: '你的登录授权令牌'
});

// 读取令牌
const { value: authToken } = await EncryptedStorage.get({ key: 'auth_token' });

方案3:自定义加密层(适合特殊加密规则需求)

如果以上两种方案都不满足你的自定义加密规则要求,可以自行封装加密逻辑,密钥依然存在系统安全存储中:

  • 用@capacitor/keychain-access插件将加密密钥存储到iOS Keychain和Android Keystore中,避免密钥明文暴露
  • 存储令牌时,用AES-256等对称加密算法,用安全存储的密钥加密明文令牌,再将密文存入普通本地存储
  • 读取时先从Keychain/Keystore取出密钥,再解密密文得到明文令牌

内容的提问来源于stack exchange,提问作者subash sharma

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.26 15:39:02