java – 如何在android中安全地存储加密密钥?
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了java – 如何在android中安全地存储加密密钥?,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1287字,纯文字阅读大概需要2分钟。
内容图文
![java – 如何在android中安全地存储加密密钥?](/upload/InfoBanner/zyjiaocheng/706/69850bc045854419b365b7f0d8431487.jpg)
我想知道如何在Android中安全地存储加密密钥?保护加密和密钥的最佳方案是什么?
解决方法:
根据您的评论,您需要使用本地密钥为当前Android版本和旧版本加密数据
Android Keystore旨在生成和保护您的密钥.但它不适用于低于18的API级别,并且在API级别23之前它有一些限制.
您将需要随机对称加密密钥,例如AES. AES密钥用于加密和解密数据.我将总结您根据Android API级别安全生成和存储它的选项.
> API级别< 18:Android Keystore不存在.向用户请求密码,从密码中获取加密密钥,缺点是您需要在应用程序启动时提示输入密码.加密密钥不存储在设备中.每次使用密码启动应用程序时都会计算它
> API级别> = 18< 23:Android密钥库,不支持AES.使用默认加密提供程序(不使用AndroidKeystore)生成随机AES密钥.在Android Keystore中生成RSA密钥对,并使用RSA公钥加密AES密钥.将加密的AES密钥存储到Android SharedPreferences中.应用程序启动时,使用RSA私钥解密AES密钥
> API Level> = 23:支持AES的Android密钥库.使用Android Keystore生成随机AES密钥.你可以直接使用它.
加密可以使用AES / CBC / PKCS7Padding算法.它还需要一个随机初始化向量(IV)来加密您的数据,但它可以是公共的.
备择方案:
> API级别> 14:Android Key Chain:KeyChain是一个系统范围的凭据存储.您可以使用可供应用程序使用的私钥安装证书.使用预安装的密钥加密/解密您的AES密钥,如上面的第二种情况所示.
>外部令牌:受保护的密钥不存储在设备中.您可以使用包含私钥/公钥对的外部令牌,该令牌允许您加密AES密钥.可以使用蓝牙或NFC接收令牌
内容总结
以上是互联网集市为您收集整理的java – 如何在android中安全地存储加密密钥?全部内容,希望文章能够帮你解决java – 如何在android中安全地存储加密密钥?所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。