欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

双token实现token超时策略示例

程序员文章站 2024-02-25 20:39:03
复制代码 代码如下:import com.google.common.base.charsets;import com.google.common.hash.hashing...

复制代码 代码如下:

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);

    }
}