Java算法(七):随机产生验证码 && 前后端验证码比对处理 && 实战思路步骤

Java算法(七)

随机产生验证码

package com.liujintao.random;

import java.util.Random;
import java.util.Scanner;

public class RandomNumber {
    /**
     * 该函数调用验证码所有的函数,完成验证码模块功能开发
     * @param args
     */
    public static void main(String[] args) {
        // 1、调用产生验证码元素函数
        char[] result = CodeCharArray();

        // 2、调用产生验证码下标索引的数组函数
        int[] array_index = RandomCode();

        // 3、调用生成验证码函数
        String code = getCode(result, array_index);
        System.out.println("生成的验证码为:" + code);

        // 4、调用获取用户输入的验证码函数
        String user = InputCode();
        System.out.println("用户输入的验证码为:" + user);

        // 5、调用验证结果的处理函数
        handleCode(code, user);
    }

    /**
     *1.获取验证码元素
     */
   public static char[] CodeCharArray() {
       // 产生的验证码元素方法字符数组中
       char[] ch = new char[62];

       // 获取验证码元素
       int index = 0;
       for (char c = 'a'; c <= 'z'; c++) {
            // 注意,字符可以用数组表示,所以这里用char类型,计数器从c 到 z
           ch[index] = c;
           index++;
       }

       for (char c = 'A'; c <= 'Z'; c++) {
           ch[index] = c;
           index++;
       }

       for (char i = '0'; i <= '9'; i++) {
           ch[index] = i;
           index++;
       }

       return ch;


   }


    /**
     * 2.产生验证码下标索引的方法
     */
    public static int[] RandomCode() {
        Random r = new Random();
        int[] indexNum = new int[5];
        for (int i = 0; i < 5; i++) {
            indexNum[i] = r.nextInt(26 + 26 + 10);
        }
        return indexNum;
    }

    /**
     *3.得到验证码字符串的方法
     * @param ch
     * @param index
     * @return
     */
    public static String getCode(char[] ch, int[] index) {
        // 用字符串存放获得的每个字符验证码,并返回
        String CodeStr = "";
        for (int i = 0; i < index.length; i++) {
            CodeStr += ch[index[i]];
        }
        return CodeStr;
    }


    /**
     * 4.前台发送过来用户输入的验证码
     */
    public static String InputCode() {
        Scanner sc = new Scanner(System.in);
        // 这里是模拟请求的验证码
        String inputCode = "";
        System.out.println("请输入验证码:");
        for (int i = 0; i < 5; i++) {
            // 注意请求过来的都是json格式,需要转换成String(所以这里用String)
            String str = sc.next();
            inputCode += str;
        }
        return inputCode;
    }


    /**
     * 5.处理验证码是否正确的方法
     */
    public static void handleCode(String code, String user) {
        if (code.equals(user)) {
            System.out.println("验证码输入正确!");
        } else {
            System.out.println("验证码输入有误,请检查后重新输入!");
        }
    }
}

运行效果
Java算法(七):随机产生验证码 && 前后端验证码比对处理 && 实战思路步骤_第1张图片

你可能感兴趣的:(Java算法,java,算法,开发语言)