雙token實現(xiàn)token超時策略示例
import com.google.common.base.Charsets;
import com.google.common.hash.Hashing;
import java.util.Date;
import org.apache.commons.lang.time.FastDateFormat;
/**
*
* @author Charles
*/
public class TokenUtils {
private static final String privateKey = "fdas34ljfr好sja@#8$%dfkl;js&4*daklfjsdl;akfjsa342";
public static String getToken(String password, String date) {
return Hashing.md5().newHasher().
putString(password, Charsets.UTF_8).
putString(privateKey, Charsets.UTF_8).
putString(date, Charsets.UTF_8).hash().toString();
}
public static String getToken(String password, Date date) {
return Hashing.md5().newHasher().
putString(password, Charsets.UTF_8).
putString(privateKey, Charsets.UTF_8).
putString(getDate(date), Charsets.UTF_8).hash().toString();
}
public static String getToken(String password) {
return Hashing.md5().newHasher().
putString(password, Charsets.UTF_8).
putString(privateKey, Charsets.UTF_8).putString(getDate(), Charsets.UTF_8).hash().toString();
}
public static boolean validToken(String token, String password) {
String confirm = getToken(password);
if (confirm.equals(token)) {
return true;
} else {
return false;
}
}
public static String getDate() {
Date date = new Date(System.currentTimeMillis());
return FastDateFormat.getInstance("yyyyMMddHH").format(date);
}
public static String getDate(Date now) {
return FastDateFormat.getInstance("yyyyMMddHH").format(now);
}
public static String getNextHour(Date now) {
Date date = new Date(now.getTime()+60*60*1000);
return FastDateFormat.getInstance("yyyyMMddHH").format(date);
}
}
相關(guān)文章
idea中創(chuàng)建jsp項目的詳細實戰(zhàn)步驟
才學javaWeb,以防自己忘記創(chuàng)建項目的過程,所以淺淺的記錄一下吧,下面這篇文章主要給大家介紹了關(guān)于idea中創(chuàng)建jsp項目的詳細步驟,文中通過圖文介紹的非常詳細,需要的朋友可以參考下2022-09-09
WebSocket 中使用 @Autowired 注入對應(yīng)為null的解決方案
SpringBoot集成WebSocket時,會遇到service對象為null的情況,原因是Spring默認為單例模式與WebSocket的多對象模式相沖突,當客戶端與服務(wù)器端建立連接時,會創(chuàng)建新的WebSocket對象,本文給大家介紹WebSocket 中使用 @Autowired 注入對應(yīng)為null的問題,感興趣的朋友一起看看吧2024-10-10
SpringBoot集成iText實現(xiàn)電子簽章功能
這篇文章主要為大家詳細介紹了SpringBoot如何集成iText實現(xiàn)電子簽章功能,文中的示例代碼講解詳細,感興趣的小伙伴可以跟隨小編一起學習一下2024-10-10
MyBatis將查詢出的兩列數(shù)據(jù)裝配成鍵值對的操作方法
這篇文章主要介紹了MyBatis將查詢出的兩列數(shù)據(jù)裝配成鍵值對的操作代碼,本文通過實例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下2022-08-08

