java如何保存token
保存 Token 的方法
在 Java 中保存 Token 通常需要考虑安全性和持久性。以下是几种常见的保存方式:
使用内存存储(临时保存) 适用于短期保存,如单次会话期间。可以使用静态变量或单例模式存储 Token,但重启应用后数据会丢失。

public class TokenHolder {
private static String token;
public static void setToken(String newToken) {
token = newToken;
}
public static String getToken() {
return token;
}
}
使用 SharedPreferences(Android) 适用于 Android 平台,将 Token 以键值对形式存储在本地 XML 文件中。
SharedPreferences prefs = context.getSharedPreferences("MyAppPrefs", Context.MODE_PRIVATE);
SharedPreferences.Editor editor = prefs.edit();
editor.putString("auth_token", tokenValue);
editor.apply();
使用数据库存储 适合需要长期保存或关联用户数据的场景。可通过 SQLite 或 Room 等数据库框架实现。

@Entity
public class User {
@PrimaryKey
public int uid;
public String token;
}
@Dao
public interface UserDao {
@Insert
void insert(User user);
@Query("SELECT token FROM user WHERE uid = :userId")
String getToken(int userId);
}
使用加密文件存储 通过 Java 加密库(如 AES)将 Token 加密后存入文件,提升安全性。
Cipher cipher = Cipher.getInstance("AES/CBC/PKCS5Padding");
cipher.init(Cipher.ENCRYPT_MODE, secretKey);
byte[] encryptedToken = cipher.doFinal(token.getBytes());
Files.write(Paths.get("token.dat"), encryptedToken);
使用安全存储服务(高级方案)
- Android 的
Keystore系统 - 服务端存储结合 HTTPS 传输
- OAuth2 的
Refresh Token机制
安全注意事项
- 避免明文存储 Token
- 设置合理的 Token 过期时间
- 使用 HTTPS 传输
- 敏感操作需二次验证
- 定期轮换密钥
选择方案时应根据应用场景(如移动端/服务端)、安全等级要求和 Token 的有效期综合判断。对于高安全需求场景,建议结合多种存储方式并实现自动续签机制。






