手机令牌机制java程序的实现

在手机客户端登录时,常用到令牌机制,以确保用户在登录时信息不被抓取,在java程序中,主要根据时间情况,进行MD5加密即可

package com.kevin.authtoken;
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;
public class TokenProcessor {
	private static TokenProcessor instance = new TokenProcessor();
private long previous;
public TokenProcessor() {
}
public static TokenProcessor getInstance(){
	return instance;
}
public synchronized String generateToken(String msg,boolean timeChange){
	try{
		long current = System.currentTimeMillis();
		if(current == previous){
			current++;
		}
		previous = current;
		MessageDigest md = MessageDigest.getInstance("MD5");
		md.update(msg.getBytes());
		if(timeChange){
			byte now[] = (new Long(current)).toString().getBytes();
			md.update(now);
		}
		return toHex(md.digest());
	}
	catch(NoSuchAlgorithmException e){
		return null;
	}
}
private String toHex(byte buffer[]){
	StringBuffer sb = new StringBuffer(buffer.length * 2);
	for(int i = 0; i < buffer.length;i++){
		sb.append(Character.forDigit((buffer[i] & 240) >> 4, 16));
		sb.append(Character.forDigit(buffer[i] & 15, 16));  
	}
	return sb.toString(); 
}
//进行测试
public static void main(String args[]){
	String token = new TokenProcessor().generateToken("vokey", false);
	System.out.println(token);
}
}
这样即可 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: Single Sign-On (SSO) 可以通过使用以下几种方式在 Java实现: 1. OAuth2 和 OpenID Connect:这是一种基于标准的身份验证和授权协议,可以通过使用第三方身份提供者(如 Google)来实现 SSO。 2. SAML(安全断言标记语言):这是一种用于在不同组织之间共享身份信息的标准,可以通过使用 SAML 身份提供者来实现 SSO。 3. CAS(中央身份验证服务):这是一种开源的单点登录解决方案,可以通过部署 CAS 服务器来实现 SSO。 实现 SSO 的方法取决于你的具体需求和技术环境。你可以根据你的项目需求和技术栈来选择合适的方法。 ### 回答2: Java实现单点登录(SSO)可以通过以下步骤进行: 1. 配置身份验证服务:首先需要选择并配置一个身份验证服务,例如LDAP(轻量级目录访问协议)、CAS(中央身份验证服务)等。这些服务可以充当用户身份验证的中心,用于验证用户凭据并生成安全令牌。 2. 创建登录组件:使用Java编写一个登录组件,该组件可以接收用户登录请求并将用户名和密码发送到身份验证服务(如LDAP)进行验证。如果验证成功,组件将生成一个令牌并将其返回给用户。 3. 验证令牌:在每个需要进行单点登录的应用程序中,将验证用户传递的令牌。这可以通过编写一个Java过滤器或拦截器来实现,它能够验证令牌的有效性并获取用户信息。 4. 单点登录共享会话:一旦用户通过登录组件进行身份验证,他们就可以在多个应用程序之间共享会话。在每个应用程序中,可以使用Java的会话管理机制(例如,Servlet的HttpSession)来存储令牌和其他用户信息。 5. 注销和超时处理:在用户注销或会话超时的情况下,需要及时清除令牌和相关会话信息,以确保安全性。 6. 单点登出:当用户发起登出请求时,应该将该请求广播到所有已登录的应用程序,使其注销用户并清除相关会话信息。 总结来说,通过配置身份验证服务、编写登录组件、验证令牌、共享会话、处理注销和超时以及实现单点登出等步骤,可以使用Java实现单点登录(SSO)功能

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值