//通过用户名+时间+MD5生成动态秘钥
public String getSecretKey(ZcUserbase user){
String secretKey = UUID.randomUUID().toString(); // 密钥
Timestamp outDate = new Timestamp(System.currentTimeMillis() + 30 * 60 * 1000);// 30分钟后过期
long date = outDate.getTime() / 1000 * 1000;// 忽略毫秒数 mySql 取出时间是忽略毫秒数的
String key =user.getNickname() + "$" + date + "$" + secretKey;
String digitalSignature = MD5Utils.md5(key);// 数字签名
return digitalSignature;
//应用场景
//忘记密码激活邮箱 并在邮箱生成一个code 32位的秘钥
ZcUserbase user=new ZcUserbase();
user.setNickname(nickname);
ZcUserbase account=userService.QueryAccount(user);
if(account!=null){
//生成数字签名
String digitalSignature=getSecretKey(user);
//设置数字签名
account.setCode(digitalSignature);
this.userService.edit(account);
//发送激活邮件
boolean temp=SendMail.sendMsg(account.getMailbox(), account.getCode());
if(temp==true){
return Commons.EMAILSUCCESS;
}else{
return Commons.EMAILERROR;
}