随机得到指定长度的随机字符串,可以用于实现动态验证码

在开发过程中,可能需要得到指定长度的字符串,比如验证码就有这种需求,对此存在几种常见的方法,总结如下:

1.指定一个数组或者字符串,通过Math.random()得到一个随机数,并作为下表进行字符的获取,具体代码如下:、

public String getRandomString2(Integer len){
  char[] takeArr = {‘0‘,‘1‘,‘2‘,‘3‘,‘4‘,‘5‘,‘6‘,‘7‘,‘8‘,‘9‘,
  ‘A‘,‘B‘,‘C‘,‘D‘,‘E‘,‘F‘,‘G‘,‘H‘,‘I‘,‘J‘,‘K‘,‘L‘,‘M‘,‘N‘,
  ‘O‘,‘P‘,‘Q‘,‘R‘,‘S‘,‘T‘,‘U‘,‘V‘,‘W‘,‘X‘,‘Y‘,‘Z‘,
  ‘a‘, ‘b‘, ‘c‘, ‘d‘, ‘e‘, ‘f‘, ‘g‘, ‘h‘, ‘i‘, ‘j‘, ‘k‘,
  ‘l‘, ‘m‘, ‘n‘, ‘o‘, ‘p‘, ‘q‘, ‘r‘, ‘s‘, ‘t‘, ‘u‘, ‘v‘, ‘w‘, ‘x‘,
  ‘y‘, ‘z‘};
  char[] chrs = new char[len];
  int index = 0;
  for(int i=0;i<len;i++){
    index = (char) (Math.random()*62);
    chrs[i] = takeArr[index];
  }
  return String.valueOf(chrs);
}

2.通过字母的ASCII码,进行分析直接得到字符char,具体的代码如下:

public String getRandomString(Integer len){
  char[] chrs = new char[len];
  for(int i =0;i < len;i++){
    chrs[i] = (char) (Math.random()*52+65);
  }
  return String.valueOf(chrs);
}

以上是两种比较常见的生成指定长度字符的方式

时间: 2024-10-15 21:23:28

随机得到指定长度的随机字符串,可以用于实现动态验证码的相关文章

.NET(C#)生成指定长度的随机字符串的通用方法

.NET(C#)生成指定长度的随机字符串的通用方法,此方法可以指定字符串的长度,是否包含数字,是否包含符号,是否包含小写字母,是否包含大写字母等, 源码: 1 #region 生成指定长度的随机字符串 2 /// <summary> 3 /// 生成指定长度的随机字符串 4 /// </summary> 5 /// <param name="intLength">随机字符串长度</param> 6 /// <param name=&

python中生成一个指定长度的随机字符串实现示例

方法一:定义一个函数,参数为所要生成随机字符串的长度.通过random.randint(a, b)方法得到随机数字,具体函数如下: def generate_random_str(randomlength=16): """ 生成一个指定长度的随机字符串 """ random_str = '' base_str = 'ABCDEFGHIGKLMNOPQRSTUVWXYZabcdefghigklmnopqrstuvwxyz0123456789' le

随机生成指定长度的密码之---Random

随机生成指定长度的密码思路: 1.密码中可能包含字母,数字,特殊符号,为了区别分别定义常量 2.随机生成密码,自然想到要用到java.util.Random 类 3.定义一个带两个参数的方法,1跟2,分别指定密码内容类型和密码长度 具体实现过程: import java.util.Random;/** * @author * @date 创建时间: * @version 1.0 * @parameter * @since * @return */public class RandomChar {

4.java随机生成指定长度的字符串

//生成随机数字和字母, public static String getStringRandom(int length) { String val = ""; Random random = new Random(); //参数length,表示生成几位随机数 for(int i = 0; i < length; i++) { String charOrNum = random.nextInt(2) % 2 == 0 ? "char" : "num

生成指定长度的随机字符串

/** * 生成随即密码 * @param pwd_len 生成的密码的总长度 * @return 密码的字符串 */ public String genRandomNum(int pwd_len) { //36个字母+10个数字 final int maxNum = 36; int i; // 生成的随机数 int count = 0; // 生成的密码的长度 char[] str = { 'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k

获取指定长度的随机字符串

s = '' chars = 'abcdefghijklmnopqrstuvwxyz0123456789' length = len(chars) - 1 random = Random() for i in range(31): s += chars[random.randint(0, length)] x = int(time.time() * 1000) s = str(x)+s

commons-text 生成指定长度的随机字符串

package com.skylink.junge.demo; import java.util.HashSet; import java.util.Set; import org.apache.commons.text.RandomStringGenerator; import org.apache.commons.text.StrTokenizer; public class StrTokenizerTest { public static void main(String[] args)

Python随机生成指定长度字符串并保存到mysql中

网上看到一个python练习题,要随机生成8位数的优惠券,并希望能保存到mysql数据库中.自己查资料写了下面的一段代码完成这个小作业 #!/usr/bin/env python # -*- coding: utf-8 -*- #author qingmiao import MySQLdb as mdb import sys import random,string def random_code(code_length,code_long):     i=1     result = []  

随机生成指定长度的数字+字符的密码

/// <summary> /// 生成随机数的种子 /// </summary> /// <returns></returns> private static int getNewSeed() { byte[] rndBytes = new byte[4]; System.Security.Cryptography.RNGCryptoServiceProvider rng = new System.Security.Cryptography.RNGCryp