技术经验谈 技术经验谈
首页
  • 最佳实践

    • 抓包
    • 数据库操作
  • ui

    • 《JavaScript教程》
    • 《JavaScript高级程序设计》
    • 《ES6 教程》
    • 《Vue》
    • 《React》
    • 《TypeScript 从零实现 axios》
    • 《Git》
    • TypeScript
    • JS设计模式总结
  • 总纲
  • 整体开发框架
  • 技术文档
  • GitHub技巧
  • Nodejs
  • 博客搭建
  • 学习
  • 面试
  • 心情杂货
  • 实用技巧
  • 友情链接
关于
收藏
  • 分类
  • 标签
  • 归档
GitHub (opens new window)

hss01248

一号线程序员
首页
  • 最佳实践

    • 抓包
    • 数据库操作
  • ui

    • 《JavaScript教程》
    • 《JavaScript高级程序设计》
    • 《ES6 教程》
    • 《Vue》
    • 《React》
    • 《TypeScript 从零实现 axios》
    • 《Git》
    • TypeScript
    • JS设计模式总结
  • 总纲
  • 整体开发框架
  • 技术文档
  • GitHub技巧
  • Nodejs
  • 博客搭建
  • 学习
  • 面试
  • 心情杂货
  • 实用技巧
  • 友情链接
关于
收藏
  • 分类
  • 标签
  • 归档
GitHub (opens new window)
  • 最佳实践

    • Android数据库操作最佳实践
    • 基于蒲公英平台的app发布,更新,反馈功能的实现
    • testRss
  • ui

  • 优化

  • aop

  • apm

  • 架构

  • webview

  • rxjava

  • activity-fragment-view的回调和日志
  • Android加密相关
    • Android命令行操作
    • app后台任务
    • kotlin
    • kotlin漫谈
    • kotlin语言导论
    • sentry上传mapping.txt文件
    • so放于远程动态加载方案
    • states
    • Xposed模块开发
    • 一个关于manifest合并的猥琐操作
    • 玩坏android存储
    • 获取本app的安装来源信息
    • Android
    hss01248
    2020-12-17
    目录

    Android加密相关

    # Android加密相关

    # 问题分解

    • 加密算法

    • 密钥管理- 密钥库

      https://developer.android.com/training/articles/keystore

    • api兼容性

      在 Android 6.0 之前,密钥库仅支持 RSA 和 ECDSA

      在 Android 6.0 中,密钥库得到显著增强,增加了对 AES 和 HMAC 的支持

      https://developer.android.com/guide/topics/security/cryptography

      内容 API要求 说明
      AndroidKeyStore 18+ 密钥管理
      AndroidCAStore 14+ 密钥管理
      AES,RSA 基于javaapi,在1+就支持 加解密

      # 能够从Android18+开始支持的:

      1.Cipher

      RSA/ECB/NoPadding 18+
      RSA/ECB/PKCS1Padding 18+

      # 2.KeyStore

      KeyStore 支持的密钥类型与 KeyPairGenerator (opens new window) 和 KeyGenerator (opens new window) 支持的相同。

      # KeyPairGenerator

      RSA 18+ 支持的大小:512、768、1024、2048、3072、4096支持的公开指数:3、65537默认公开指数:65537

    # KeyGenerator只支持api 23+

    # 3.Signature

    SHA256withRSA 18+
    • 便捷使用库

      Security 库版本 1.1.0 (opens new window) 需要Android api >=21 便捷操作file和sp

    综上,加解密使用JAVA api,推荐使用AES对称加密.

    密钥管理:

    使用AndroidKeyStore的RSA加密后存储在本地,使用时再从本地读取,通过AndroidKeyStore里的私钥解密拿到真正的密钥,用于解密.此方案可兼容到18+.

    18以下的,使用特定的seed输入到SecureRandom,直接内存计算得到密钥.

    如果需要兼容到Android6之前,就使用RSA.

    # 另一种方式

    将密钥和加密算法都放到c中实现,同时在每次对so的调用时校验context的签名信息,签名不对,直接构建c层crash.

    # 名词

    Android 密钥库系统

    # 兼容性

    # 参考

    https://developer.android.com/guide/topics/security/cryptography

    Android密钥库的发展历史和使用指南 (opens new window)

    Android 密钥库系统 (opens new window)

    编辑 (opens new window)
    上次更新: 2022/08/25, 20:20:31
    activity-fragment-view的回调和日志
    Android命令行操作

    ← activity-fragment-view的回调和日志 Android命令行操作→

    最近更新
    01
    截图后的自动压缩工具
    12-27
    02
    图片视频文件根据exif批量重命名
    12-27
    03
    chatgpt图片识别描述功能
    02-20
    更多文章>
    Theme by Vdoing | Copyright © 2020-2025 | 粤ICP备20041795号
    • 跟随系统
    • 浅色模式
    • 深色模式
    • 阅读模式