java 账户 token
时间: 2023-10-23 18:36:16 浏览: 83
下面是一个简单的Java账户Token工具类的示例:
```java
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;
import java.util.Base64;
public class AccountTokenUtil {
private static final String SALT = "random_salt";
public static String generateToken(String username, String password) {
try {
// 将用户名、密码和盐值连接起来
String data = username + password + SALT;
// 使用SHA-256哈希算法计算摘要
MessageDigest md = MessageDigest.getInstance("SHA-256");
byte[] digest = md.digest(data.getBytes());
相关问题
给我写一段不需要token获取github开源项目所有分支的java代码
好的,以下是一段获取Github开源项目所有分支的Java代码,无需Token:
```java
import java.io.IOException;
import java.net.HttpURLConnection;
import java.net.URL;
import java.util.Scanner;
public class GithubBranches {
public static void main(String[] args) throws IOException {
String owner = "ownerName"; // Github账户名
String repo = "repoName"; // Github项目名
URL url = new URL("https://api.github.com/repos/" + owner + "/" + repo + "/branches");
HttpURLConnection conn = (HttpURLConnection) url.openConnection();
conn.setRequestProperty("User-Agent", "Mozilla/5.0"); // Github默认只接受请求头中包含User-Agent的请求
conn.setRequestMethod("GET");
Scanner sc = new Scanner(conn.getInputStream());
while (sc.hasNextLine()) {
System.out.println(sc.nextLine());
}
}
}
```
希望这个代码对你有帮助!请问您有没有其它问题需要我回答呢?
Java实现qq登陆有账户选择的
实现 QQ 登录需要使用 QQ 提供的开放平台 API。具体步骤如下:
1. 注册成为 QQ 开放平台开发者,创建应用,获取应用 ID 和密钥。
2. 使用 Java 编写程序,调用 QQ 提供的 OAuth2 授权 API,引导用户授权登录并获取用户的 OpenID。
3. 根据用户的 OpenID,查询数据库获取用户的账户信息(例如用户名、密码等),并在用户登录界面显示多个账户供用户选择。
4. 用户选择账户后,使用选中的账户信息进行登录。
以下是一个简单的示例代码:
```java
public class QQLogin {
private static final String APP_ID = "your_app_id";
private static final String APP_KEY = "your_app_key";
private static final String REDIRECT_URI = "http://your_redirect_uri";
private static final String SCOPE = "get_user_info";
public static void main(String[] args) throws IOException {
// Step 1: 获取授权码
String authCode = getAuthCode();
// Step 2: 获取访问令牌
String accessToken = getAccessToken(authCode);
// Step 3: 获取用户 OpenID
String openId = getOpenId(accessToken);
// Step 4: 查询数据库,获取账户列表
List<Account> accounts = getAccounts(openId);
// Step 5: 显示账户列表供用户选择
Account selectedAccount = showAccountSelection(accounts);
// Step 6: 使用选中的账户信息进行登录
login(selectedAccount);
}
private static String getAuthCode() throws IOException {
String authorizeUrl = String.format("https://graph.qq.com/oauth2.0/authorize?response_type=code&client_id=%s&redirect_uri=%s&scope=%s", APP_ID, REDIRECT_URI, SCOPE);
System.out.println("请在浏览器中打开以下网址并授权登录:");
System.out.println(authorizeUrl);
System.out.println("授权成功后,请在浏览器地址栏中复制 code 参数的值并粘贴到程序中:");
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
return reader.readLine();
}
private static String getAccessToken(String authCode) throws IOException {
String accessTokenUrl = String.format("https://graph.qq.com/oauth2.0/token?grant_type=authorization_code&client_id=%s&client_secret=%s&code=%s&redirect_uri=%s", APP_ID, APP_KEY, authCode, REDIRECT_URI);
String response = HttpUtils.get(accessTokenUrl);
String accessToken = StringUtils.substringBetween(response, "access_token=", "&");
System.out.println("Access Token: " + accessToken);
return accessToken;
}
private static String getOpenId(String accessToken) {
String openIdUrl = String.format("https://graph.qq.com/oauth2.0/me?access_token=%s", accessToken);
String response = HttpUtils.get(openIdUrl);
String openId = StringUtils.substringBetween(response, "\"openid\":\"", "\"}");
System.out.println("OpenID: " + openId);
return openId;
}
private static List<Account> getAccounts(String openId) {
// 查询数据库,获取账户列表
...
}
private static Account showAccountSelection(List<Account> accounts) {
// 显示账户列表供用户选择
...
}
private static void login(Account account) {
// 使用选中的账户信息进行登录
...
}
}
```
注意:以上示例代码中的 getAuthCode()、HttpUtils.get()、StringUtils.substringBetween()、getAccounts()、showAccountSelection()、login() 等方法需要根据实际情况进行实现。同时,为了简化示例代码,省略了异常处理、日志记录等必要的功能。实际项目中应该加上这些功能。
阅读全文