生成六位数字验证码的工具类

生成六位数字验证码的工具类

注意 salt 需为全英文,否则验证码会不是纯数字

package com.common.utils;

/**
 * 这是生成六位数字验证码的工具类
 * 注意 salt 需为全英文,否则验证码会不是纯数字
 */
public class CodeUtil {
    public static String generator(String salt){

        // 利用哈希值生成验证码
        int hash = salt.hashCode();

        // 加密
        int encryption = 2023666;

        // 用 hash 异或上加密得到生成第一次加密结果
        // 这个生成的加过永远是固定的如果加密码不动的情况下
        long result = hash ^ encryption;

        // 利用获得当前时间再次加密得出结果
        long time = System.currentTimeMillis();
        result = result ^ time;

        // 取后六位数字
        long code = result % 1000000;

        // 此时随机数字验证码生成完成
        return code + "";
    }
}

你可能感兴趣的:(java)