双token实现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);
}
}
上一篇: 数组去重 - 创造 101 种方法(下)
下一篇: JBOSS EJB3项目启动执行一个任务