1. 程式人生 > >java 隨機驗證碼生成

java 隨機驗證碼生成

import java.util.Random;

/**

  • public static final String ALLCHAR = “0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ”; public static final String LETTERCHAR = “abcdefghijkllmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ”; public static final String NUMBERCHAR = “0123456789”;

    /**

    • 返回一個定長的隨機字串(只包含大小寫字母、數字)
    • @param length
    •        隨機字串長度 
      
    • @return 隨機字串 */ public static String generateString(int length) { StringBuffer sb = new StringBuffer(); Random random = new Random(); for (int i = 0; i < length; i++) { sb.append(ALLCHAR.charAt(random.nextInt(ALLCHAR.length()))); } return sb.toString(); }

    /**

    • 返回一個定長的隨機純字母字串(只包含大小寫字母)
    • @param length
    •        隨機字串長度 
      
    • @return 隨機字串 */ public static String generateMixString(int length) { StringBuffer sb = new StringBuffer(); Random random = new Random(); for (int i = 0; i < length; i++) { sb.append(LETTERCHAR.charAt(random.nextInt(LETTERCHAR.length()))); } return sb.toString(); }

    /**

    • 返回一個定長的隨機純大寫字母字串(只包含大小寫字母)
    • @param length
    •        隨機字串長度 
      
    • @return 隨機字串 */ public static String generateLowerString(int length) { return generateMixString(length).toLowerCase(); }

    /**

    • 返回一個定長的隨機純小寫字母字串(只包含大小寫字母)
    • @param length
    •        隨機字串長度 
      
    • @return 隨機字串 */ public static String generateUpperString(int length) { return generateMixString(length).toUpperCase(); }

    /**

    • 生成一個定長的純0字串
    • @param length
    •        字串長度 
      
    • @return 純0字串 */ public static String generateZeroString(int length) { StringBuffer sb = new StringBuffer(); for (int i = 0; i < length; i++) { sb.append(‘0’); } return sb.toString(); }

    /**

    • 根據數字生成一個定長的字串,長度不夠前面補0
    • @param num
    •        數字 
      
    • @param fixdlenth
    •        字串長度 
      
    • @return 定長的字串 */ public static String toFixdLengthString(long num, int fixdlenth) { StringBuffer sb = new StringBuffer(); String strNum = String.valueOf(num); if (fixdlenth - strNum.length() >= 0) { sb.append(generateZeroString(fixdlenth - strNum.length())); } else { throw new RuntimeException(“將數字” + num + “轉化為長度為” + fixdlenth + “的字串發生異常!”); } sb.append(strNum); return sb.toString(); }

    /**

    • 每次生成的len位數都不相同
    • @param param
    • @return 定長的數字 */ public static int getNotSimple(int[] param, int len) { Random rand = new Random(); for (int i = param.length; i > 1; i–) { int index = rand.nextInt(i); int tmp = param[index]; param[index] = param[i - 1]; param[i - 1] = tmp; } int result = 0; for (int i = 0; i < len; i++) { result = result * 10 + param[i]; } return result; } }