用途:为 Android 应用开发提供安全最佳实践参考,覆盖数据存储、网络通信、输入校验与身份认证等环节。
主要能力:
- 安全存储:使用 EncryptedSharedPreferences 与 MasterKey(AES256_GCM)加密偏好数据,并提供 TokenStorage 示例管理访问令牌;使用 Android Keystore 生成 AES 密钥,可要求用户认证(setUserAuthenticationRequired、setUserAuthenticationParameters)。
- 网络安全:通过 res/xml/network_security_config.xml 禁止明文流量(cleartextTrafficPermitted="false")、限定系统信任锚、配置 debug-overrides 与证书固定(pin-set,SHA-256);Ktor/OkHttp 中可用 CertificatePinner 添加主备 pin。
- 安全日志:禁止记录敏感数据,示例用 Timber 的 ReleaseTree 仅在 WARN 及以上级别上报,并按 BuildConfig.DEBUG 区分 DebugTree 与 ReleaseTree。
- 输入校验:示例 validateEmail 返回 Result,检查空值、格式与长度;数据库查询使用参数化查询防注入。
- 生物识别:使用 BiometricPrompt 与 CryptoObject,配合 BIOMETRIC_STRONG 认证后解密敏感数据。
- 混淆加固:R8/ProGuard 规则示例,包括保留 SourceFile/LineNumberTable 供崩溃报告、-repackageclasses 混淆、-assumenosideeffects 移除 Log 调用。
使用方式:将上述代码模式按需集成到 Android 项目中,配置文件放入 res/xml,Gradle 中启用 R8 规则。
适用场景:需要本地加密存储、HTTPS 与证书固定、生物识别登录、防注入与发布版日志收敛的 Android 应用。
限制:资料仅给出代码模式与配置示例,未提供具体依赖版本、完整工程配置、测试方法或兼容性说明;证书 pin 值、域名与有效期需按实际替换。