java数字签名实现简单的动态秘钥

来源:互联网 发布:呼叫中心系统源码 编辑:程序博客网 时间:2024/05/24 00:43

//通过用户名+时间+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;                }               
原创粉丝点击