Heim > Fragen und Antworten > Hauptteil
我做了个软件,想用激活码方式授权,有些只想授权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个验证码来检验。如果有一个是正确的,那说明还没有过期。