随着个人信息安全意识的提高,APP的功能设计越来越需要对数据进行更安全的处理,经常会有新闻爆出某某应用又在后台偷偷获取用户联系人、短信、通话记录等等个人信息。科技发展在带来便利的同时,也会有很多安全问题,如何保证用户数据的安全存取呢?Google提供了Security组件来进行数据保护,一起来看看吧!
Android Jetpack库提供了Security组件,用于信息保存和读取时的保护,提供了与静态数据读写有关以及秘钥创建和验证相关的实现。
该库提供了以下两种安全级别设定:
-
平衡加密和性能的安全保护
在此安全级别下,适用于消费者应用程序,例如银行和聊天应用程序,包括执行证书吊销检查的企业程序。
-
最大安全保护
此安全级别适用于需要硬件支持的秘钥库和需要用户提供秘钥访问权限的应用程序。
下面开始介绍如何使用Security库进行安全性配置,以及如何安全地读写存储在文件和SharedPreferences中的加密数据。
Security
秘钥管理
Security库秘钥管理分为两个部分:
-
秘钥集合
包含一个或多个秘钥来加密文件或共享的SharedPreferences数据,存储在SharedPreferences文件中。
-
主密钥
用来加密所有秘钥集合,其存储在Android Keystore系统中
//定义主秘钥的方法
//秘钥生成参数规范可以自定义,建议会用当前指定值
val keyGenParameterSpec = MasterKeys.AES256_GCM_SPEC
val masterKeyAlias = MasterKeys.getOrCreate(keyGenParameterSpec)
Security
库中包含的类
Security库包含EncryptedFile和EncryptedSharedPreferences两个类,分