Sim*_*mon 31 encryption android oauth sharedpreferences
我正在开发oAuth 1和2访问webservices的框架,我的问题是,如何以安全的方式存储像oAuth访问密钥这样的敏感数据?这个键的问题在于某些平台如twitter会使用永久密钥,如果有人可以访问此密钥,他可以使用用户的Twitter帐户做任何他想做的事情.
那么在将数据存储到共享首选项之前是否可以自动加密数据?或者有更好的方式/地方存储非常重要的数据?
更新 - 另请阅读:在Android应用程序中存储用户设置的最合适方法是什么
Sve*_*ken 50
您还可以查看我为此做的这个类:https://github.com/sveinungkb/encrypted-userprefs
它使用AES而不是其他建议中使用的弃用和弱DES.
Vit*_*nko 32
1).如何加密?
在Android上,加密是通过Java Cryptography Architecture(JCA)完成的.主要是javax.crypto.*
包装.
以下是JCA API使用的示例(特别是AES alrorithm).
2).在哪里存放?
加密API使用字节数组(不是字符串)进行操作.这意味着您可以使用SharedPreferences
,但是在加入之前您需要在加密的字节数组上应用Base-64编码SharedPreferences
(否则XML解析器将无法读取共享首选项文件).然后阅读你将需要使用Base-64解码.请注意,默认情况下,大多数Android操作系统版本没有内置的Base-64 API(请参阅更新部分).因此,要删除此Base-64开销,我建议您将字节存储在私有文件中.
更新:自API级别8以来,API具有android.util.Base64
.
归档时间: |
|
查看次数: |
34243 次 |
最近记录: |