雙token實(shí)現(xiàn)token超時(shí)策略示例
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)文章
關(guān)于Unsupported major.minor version 49.0的錯(cuò)誤解決辦法
這篇文章主要介紹了關(guān)于Unsupported major.minor version 49.0的錯(cuò)誤解決辦法的相關(guān)資料,需要的朋友可以參考下2015-11-11mybatis-generator-gui根據(jù)需求改動(dòng)示例
這篇文章主要為大家介紹了mybatis-generator-gui根據(jù)需求改動(dòng)示例,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-09-09springboot整合RabbitMQ 中的 TTL實(shí)例代碼
TTL 是 RabbitMQ 中一個(gè)消息或者隊(duì)列的屬性,表明一條消息或者該隊(duì)列中的所有消息的最大存活時(shí)間,單位是毫秒,這篇文章主要介紹了springboot整合RabbitMQ 中的 TTL,需要的朋友可以參考下2022-09-09spring?eurake中使用IP注冊(cè)及問(wèn)題小結(jié)
在開發(fā)spring?cloud的時(shí)候遇到一個(gè)很奇葩的問(wèn)題,就是服務(wù)向spring?eureka中注冊(cè)實(shí)例的時(shí)候使用的是機(jī)器名,然后出現(xiàn)localhost、xxx.xx等這樣的內(nèi)容,這篇文章主要介紹了spring?eurake中使用IP注冊(cè),需要的朋友可以參考下2023-07-07MyBatis Plus構(gòu)建一個(gè)簡(jiǎn)單的項(xiàng)目的實(shí)現(xiàn)
這篇文章主要介紹了MyBatis Plus構(gòu)建一個(gè)簡(jiǎn)單的項(xiàng)目的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-11-11java編程實(shí)現(xiàn)優(yōu)先隊(duì)列的二叉堆代碼分享
這篇文章主要介紹了java編程實(shí)現(xiàn)優(yōu)先隊(duì)列的二叉堆代碼分享,具有一定參考價(jià)值,需要的朋友可以了解下。2017-11-11java使用Logback配置輸出日志內(nèi)容到文件示例代碼
這篇文章主要介紹了java?Logback輸出日志內(nèi)容到文件,要將logger.info的信息輸出到文件,您可以使用Logback配置,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),需要的朋友可以參考下2023-09-09