我正在创建一个使用用户名/密码连接到服务器的应用程序,我想启用"保存密码"选项,这样用户就不必在每次启动应用程序时都键入密码.

我试着用共同的喜好来做这件事,但我不确定这是否是最好的解决方案.

如果您能就如何在Android应用程序中存储用户值/设置提出建议,我将不胜感激.

推荐答案

一般来说,SharedReference是存储首选项的最佳 Select ,所以一般来说,我建议使用这种方法来保存应用程序和用户设置.

这里唯一值得关注的是你在储蓄什么.密码总是一件很难存储的事情,我会特别小心将它们存储为明文.Android体系 struct 是这样的:应用程序的SharedReference被Sandbox 化,以防止其他应用程序能够访问这些值,因此存在一定的安全性,但对手机的物理访问可能允许访问这些值.

如果可能的话,我会考虑修改服务器来使用协商令牌来提供访问,比如OAuth.或者,您可能需要构造某种加密存储,尽管这并不简单.至少,在将密码写入磁盘之前,请确保您对密码进行了加密.

Java相关问答推荐

使用SaxonJ HE在收件箱中摆脱regex

Collections.binarySearch()使用Collections.reverseOrder()作为比较器返回-1

是否有一种格式模式,可以在除0之外的数字前面有正负符号?

Mongo DB Bson和Java:在子文档中添加和返回仅存在于父文档中的字段?

如何审查Java dtos中的自定义注释字段?

如何在Java中声明未使用的变量?

如何在带有Micronaut的YAML中使用包含特殊字符的字符串作为键

Kubernetes的Java客户端检索状态.处于终止状态的Pod的阶段';正在运行';

Java FX中的河内之塔游戏-在游戏完全解决之前什么都不会显示

如何使用Maven和Spring Boot将构建时初始化、跟踪类初始化正确传递到本机编译

Chunk(Int)已弃用并标记为要删除

有没有更快的方法在N个容器中删除重复项?

Spring Security不允许加载js

使用OAuth 2.0资源服务器JWT时的授权(授权)问题

如何在不删除Java中已有内容的情况下覆盖文件内容?

Java SSLKeyManager出厂密码

从泛型枚举创建EnumMap

在应用程序运行时更改LookAndFeel

SonarQube在合并升级到java17后对旧代码提出错误

java中的网上购物车解析错误