最近项目中需要用到忘记密码的功能,因此,写了这篇博客进行记录。
首先需要用户点击忘记密码,输入用户名和邮箱,两者可以匹配,则向邮箱中发送条链接。eg:
点击此链接进行密码修改,有效期一个小时www.abc.com?ha=2HwBjxyI4WDRBUwewvo8xioRXszig1tf1Vx4dSMa5wI
点击此链接进行重置密码,后台接受到ha参数的值,并对其进行解析,通过则可以进行密码修改。
下边主要解释如何加密这个ha参数,这里使用到了Base64进行加密和解密。
这里利用了一个jar包:commons-codec-1.8.jar(可以从官网或者maven下载)
commons-codec
commons-codec
1.8
加密和解密工具类如下:
package com.ocean.utils;
import org.apache.commons.codec.binary.Base64;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import javax.crypto.Cipher;
import javax.crypto.KeyGenerator;
import javax.crypto.SecretKey;
import java.security.SecureRandom;
public class UrlUtils {
private static final String KEY = "myoMwO6qPt&3AD";
private s