package backend.utils;

import java.util.Random;

public class CaptchaUtils{
    /**
     * 字符集常量，包含大小写字母和数字
     */
    static final String CHAR_SET="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789";

    /**
     * 验证码长度常量，默认为4位
     */
    static final int CAPTCHA_LENGTH=4;

    /**
     * 私有构造函数，防止实例化
     */
    private CaptchaUtils(){};

    /**
     * 生成随机验证码
     *
     * @return 生成的验证码字符串
     */
    public static String generateCaptcha(){
        Random random = new Random();
        //生成随机验证码
        StringBuilder sb = new StringBuilder();
        for(int i=0;i<CAPTCHA_LENGTH;i++){
            //生成随机数索引
            int index = random.nextInt(CHAR_SET.length());
            //根据索引获取随机字符
            sb.append(CHAR_SET.charAt(index));
        }
        return sb.toString();
    }

    /**
     * 验证用户输入的验证码是否正确
     *
     * @param inputCaptcha 用户输入的验证码
     * @param systemCaptcha 系统生成的验证码
     * @return 验证结果，正确返回true，错误返回false
     */
    public static boolean verifyCaptcha(String inputCaptcha,String systemCaptcha){
        return inputCaptcha.equals(systemCaptcha);
    }
}
