我做了个软件,想用激活码方式授权,有些只想授权1个星期,光是授权的话,用MD5做加密的,但是怎么让激活码带着授权时间让程序识别呢?
请教大神们
PHP中文网2017-04-18 10:31:43
很簡單,
1、首先要用服務端來驗證授權碼的有效性;
2、MD5規則可以加上時間來生成,例如授權有效期一個月,那你的MD5可以使用MD5(authCode+dateformart( new Date(),"yyyymm")),這樣一個月內你的授權碼產生的Md5都是一樣的,也就是授權碼有效,注意一定是服務端校驗,時間要取服務端的時間;
3 、MD5規則可以再增加幾層,防止被撞庫破解,可以加上MD5(SHA512(salt+authCode+dateformart(new Date(),"yyyymm"))),這樣基本上沒可能破解了,salt的話可以每一個authCode產生一個隨機變量,保存在服務端。
PHP中文网2017-04-18 10:31:43
這個方法有多種,但都不能保證不被破解。
簡單的來說,可以把時間資訊加到驗證碼中。
比如說你需要的有效期限是7天,那麼你可以以你產生驗證碼那天的日期來作為產生驗證碼的一個因子。
在你的程式做驗證的時候,取得目前的日期,並往前再推六天,共7天,以同樣的方式產生7個驗證碼來檢驗。如果有一個是正確的,那表示還沒有過期。