ehcache實現驗證碼五分鐘有效一分鐘不重複傳送

2021-09-29 01:45:33 字數 2586 閱讀 7806

ehcache 配置

name

="systembasecache"

maxelementsinmemory

="500"

maxelementsondisk

="500"

diskspoolbuffersizemb

="5"

overflowtodisk

="true"

eternal

="false"

timetoidleseconds

="300"

timetoliveseconds

="3600"

memorystoreevictionpolicy

="lfu"

/>

maxelementsinmemory

="1000"

overflowtodisk

="true"

eternal

="false"

memorystoreevictionpolicy

="lru"

maxelementsondisk

="10000"

diskexpirythreadintervalseconds

="600"

timetoidleseconds

="120"

timetoliveseconds

="120"

diskpersistent

="false"

/>

從上面的配置我們可以看出,ehcache設定失效時間五分鐘,當放入元素超過五分鐘,ehcache會根據自己的清理策略將失效元素清理。

後台**

//從快取中獲取驗證碼

string oldcode =

(string) cacheservice.

get(cacheservicei.system_base_cache, paras.

getphonenum()

);//如果沒有,則傳送

if(oldcode == null )

else

else

}

private

void

sendcode

(string phonenum)

", code)

; string sendnote = sendmessageutil.

sendnote

(phonenum, msg)

;//加入快取

cacheservice.

put(cacheservicei.system_base_cache, phonenum,code)

; cacheservice.

put(cacheservicei.system_base_cache, phonenum+safetytrainingutils.codedate,dateutils.datetimeformat.

format

(new

date()

));}

邏輯如下:當使用者請求獲取驗證碼,從快取中根據手機號為key取驗證碼,如果沒有,則傳送驗證碼,如果有,根據手機號+自定義key取出驗證碼的放入時間,判斷時間是否大於一分鐘,如果大於一分鐘則傳送,反之不傳送。在傳送驗證碼的時候將驗證碼和時間同時存入快取。

附計算兩個時間差**

/**

* 計算兩個日期的差

* @param enddate

* @param nowdate

* @return

* @description

* @author fenglu

* @date 2023年7月2日 下午3:40:35

*/public

static

intgetdatepoor

(char flag, date enddate, date nowdate)

//小時差

if(flag ==

'h')

//分鐘差

if(flag ==

'm')

//秒差

if(flag ==

's')

return0;

// long ns = 1000;

// 獲得兩個時間的毫秒時間差異

//long diff = enddate.gettime() - nowdate.gettime();

// 計算差多少天

//long day = diff / nd;

// 計算差多少小時

//long hour = diff % nd / nh;

// 計算差多少分鐘

//long min = diff % nd % nh / nm;

// 計算差多少秒//輸出結果

// long sec = diff % nd % nh % nm / ns;

//return day + "天" + hour + "小時" + min + "分鐘";

}

簡訊傳送功能暫無

驗證碼實現

1.gd庫 2.建立影象步驟 1 建立畫布 就是在記憶體中開闢一塊臨時區域,用於儲存圖影象資訊 2 繪製影象 使用各種函式設定影象顏色,背景,填充畫筆,繪製圖形等 3 輸出圖形 以某種格式儲存到伺服器或者輸出到瀏覽器顯示給使用者。注意 直接輸出之前一定要用header 告訴瀏覽器以影象格式來處理該輸...

15 分鐘用 ML 破解乙個驗證碼系統

人人都恨驗證碼 那些惱人的,顯示著你在登陸某 前得輸入的文字。設計驗證碼的目的是,通過驗證你是真實的人來避免電腦自動填充 但是隨著深度學習和計算機視覺的興起,現在驗證碼常常易被攻破。加vx tanzhouyiwan 免費的python學習資料一套我拜讀了 adrian rosebrock 寫的 de...

php驗證碼zhuc php實現驗證碼製作

php實現驗證碼製作 首先,看一張圖了解驗證碼生成的過程。1 生成驗證碼底圖 2 驗證碼內容 3 生成驗證碼 4 對比校驗 驗證碼實現的核心技術分析 a 底圖的 實現,並新增干擾元素 b 生成驗證內容 c 驗證內容儲存在服務端 d 驗證內容的校驗 下面看 實現的過程 這段 實現了產生 隨機數字,隨機...