精华内容
下载资源
问答
  • 主要介绍了java随机字符串生成示例,这个字符随机生成类可以生成多种组合的字符串,比如大+小字符+数字+符号,需要的朋友可以参考下
  • Java随机字符串生成器,可用于生成随机密码,加密算法密约(AES,RSA等)等场景,支持可选字符范围配置(如只允许数字,只允许字母,只允许数字字母,特殊字符等混合配置),即在选择的字符范围内去实现随机字符串...
  • java随机生成字符串,字符组合多样,可以大小字组合、大+小字符+数字等方式,大家参考使用吧
  • Java 随机字符串

    2019-08-09 01:28:18
    NULL 博文链接:https://colin-davis.iteye.com/blog/2190655
  • 主要为大家详细介绍了Java生成含字母和数字的6位随机字符串的相关资料,供大家参考,感兴趣的朋友可以参考一下
  • 主要介绍了Java 生成随机字符串数组的实例详解的相关资料,主要是利用Collections.sort()方法对泛型为String的List 进行排序,需要的朋友可以参考下
  • java 随机字符串工具类RandomStringUtils

    千次阅读 2018-11-12 14:27:20
    开发中经常会到生成随机数字、字母等场景。...//产生5位长度的随机字符串,中文环境下是乱码 RandomStringUtils.random(5); //使用指定的字符生成5位长度的随机字符串 RandomStringUtils.rando...

    开发中经常会到生成随机数字、字母等场景。
    apache提供的工具类已经为我们实现好了,所以就不用重复造轮子。
    —apache的commons和google的guava已经为我们准备了很多常见的工具类。

    //产生5位长度的随机字符串,中文环境下是乱码
    RandomStringUtils.random(5);
    
    //使用指定的字符生成5位长度的随机字符串
    RandomStringUtils.random(5, new char[]{'a','b','c','d','e','f', '1', '2', '3'});
    
    //生成指定长度的字母和数字的随机组合字符串
    RandomStringUtils.randomAlphanumeric(5);
    
    //生成随机数字字符串
    RandomStringUtils.randomNumeric(5);
    
    //生成随机[a-z]字符串,包含大小写
    RandomStringUtils.randomAlphabetic(5);
    
    //生成从ASCII 32到126组成的随机字符串 
    RandomStringUtils.randomAscii(4)
    
    展开全文
  • Java随机字符串与简单加密工具类

    千次阅读 2020-12-04 11:11:29
    Java随机字符串工具类与简单加密工具类前言一、随机工具类1.创建RandomUtils类2.测试方法二、加密工具类1.创建EncryptUtils类2.测试加密方法总结 前言 我们都知道Java有一些自带的Random类,不过我们也可以简单的...


    前言

    我们都知道Java有一些自带的Random类,不过我们也可以简单的自己封装成工具类,然后用在我们项目ID,验证码,以及订单中。我们也可以自己写一个简单的md5和sha加密工具类来加密一些数字密码


    一、随机工具类

    1.创建RandomUtils类

    我们来新建一个随机工具类吧,命名为 RandomUtils,其中包含了各种返回定长随机字符串的方法,也可以根据想要返回的字母或数字类型来调用相应的方法

    package cn.liu783.vueappjava.myutil;
    
    import java.util.Random;
    import java.util.UUID;
    
    public class RandomUtils {
    
        public static final String CHAR_ALL = "0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";
        public static final String CHAR_ENG = "abcdefghijkllmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";
        public static final String CHAR_NUM = "0123456789";
    
        /**
         * 生成定长随机字符串(数字)
         *
         * @param length 随机字符串长度
         * @return 随机字符串
         */
        public static String generateRandomNumber(int length) {
            StringBuffer sb = new StringBuffer();
            for (int i = 0; i < length; i++) {
                sb.append(CHAR_NUM.charAt(new Random().nextInt(CHAR_NUM.length())));
            }
            return sb.toString();
        }
    
        /**
         * 生成定长随机字符串(大小写字母、数字)
         *
         * @param length 随机字符串长度
         * @return 随机字符串
         */
        public static String generateRandomNumStr(int length) {
            StringBuffer sb = new StringBuffer();
            for (int i = 0; i < length; i++) {
                sb.append(CHAR_ALL.charAt(new Random().nextInt(CHAR_ALL.length())));
            }
            return sb.toString();
        }
    
        /**
         * 生成定长随机字符串(只包含大小写字母)
         *
         * @param length 随机字符串长度
         * @return 随机字符串
         */
        public static String generateRandomEng(int length) {
            StringBuffer sb = new StringBuffer();
            for (int i = 0; i < length; i++) {
                sb.append(CHAR_ENG.charAt(new Random().nextInt(CHAR_ENG.length())));
            }
            return sb.toString();
        }
    
        /**
         * 生成定长随机字符串(只包含小写字母)
         *
         * @param length 随机字符串长度
         * @return 随机字符串
         */
        public static String generateRandomLower(int length) {
            return generateRandomEng(length).toLowerCase();
        }
    
        /**
         * 生成定长随机字符串(只包含大写字母)
         *
         * @param length 随机字符串长度
         * @return 随机字符串
         */
        public static String generateRandomUpper(int length) {
            return generateRandomEng(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 len 字符串长度
         * @return 定长的字符串
         */
        public static String generateZeroPadding(long num, int len) {
            StringBuffer sb = new StringBuffer();
            String strNum = String.valueOf(num);
            if (len - strNum.length() >= 0) {
                sb.append(generateZeroString(len - strNum.length()));
            } else {
                throw new RuntimeException("将数字" + num + "转化为长度为" + len + "时发生异常!");
            }
            sb.append(strNum);
            return sb.toString();
        }
    
        /**
         * 传入数字,输出每个位数都不相同的字符串
         *
         * @param param
         * @return 定长的数字
         */
        public static int getNotRepeatString(int[] param, int len) {
            for (int i = param.length; i > 1; i--) {
                int index = new Random().nextInt(i);
                int tmp = param[index];
                param[index] = param[i - 1];
                param[i - 1] = tmp;
            }
            int result = 0;
            if (param.length >= len) {
                for (int i = 0; i < len; i++) {
                    result = result * 10 + param[i];
                }
            } else {
                throw new RuntimeException("数组长度小于输出长度,一定会有重复,这是个异常!");
            }
            return result;
        }
    
        /**
         * 获取UUID字符串,去除横杠
         */
        public static String getUUID(){
            String s = UUID.randomUUID().toString();
            return s.substring(0,8)+s.substring(9,13)+s.substring(14,18)+s.substring(19,23)+s.substring(24);
        }
    
    }
    
    

    2.测试方法

    	public static void main(String[] args) {
    
            System.out.println("定长随机数字:" + generateRandomNumber(10));
            System.out.println("定长随机大小写字母加数字:" + generateRandomNumStr(10));
            System.out.println("定长随机大小写字母:" + generateRandomEng(10));
            System.out.println("定长随机大写字母:" + generateRandomUpper(10));
            System.out.println("定长随机小写字母:" + generateRandomLower(10));
            System.out.println("定长全0字符串:" + generateZeroString(10));
            System.out.println("定长补0字符串:" + generateZeroPadding(9527, 10));
            int[] ints01 = {1, 2, 3};
            System.out.println("每个位数都不相同:" + getNotRepeatString(ints01, 3));
            System.out.println("UUID-1:" + getUUID());
            System.out.println("UUID-2:" + getUUID());
    
        }
    

    我们来看一下输出结果
    在这里插入图片描述

    二、加密工具类

    1.创建EncryptUtils类

    这里是一个简单的加密工具类命名为 EncryptUtils,我看到了网上有好多好多种加密的方法,不过大家觉得下面的简单的够用的话那就可以了

    package cn.liu783.vueappjava.myutil;
    
    import java.io.UnsupportedEncodingException;
    import java.security.MessageDigest;
    import java.security.NoSuchAlgorithmException;
    
    public class EncryptUtils {
    
        /**
         * 加密
         *
         * @param inputText 要加密的内容
         * @param algorithmName 加密算法名称:md5,sha-1
         * @return
         */
        private static String encrypt(String inputText, String algorithmName) {
            if (inputText == null || "".equals(inputText.trim())) {
                throw new IllegalArgumentException("密码不能为空");
            }
            if (algorithmName == null || "".equals(algorithmName.trim())) {
                algorithmName = "md5";
            }
            String encryptText = null;
            try {
                MessageDigest m = MessageDigest.getInstance(algorithmName);
                m.update(inputText.getBytes("UTF8"));
                byte s[] = m.digest();
                // m.digest(inputText.getBytes("UTF8"));
                return getHex(s);
            } catch (NoSuchAlgorithmException | UnsupportedEncodingException e) {
                e.printStackTrace();
            }
            return encryptText;
        }
    
        /**
         * 返回十六进制
         */
        private static String getHex(byte[] arr) {
            StringBuffer sb = new StringBuffer();
            for (int i = 0; i < arr.length; ++i) {
                sb.append(Integer.toHexString((arr[i] & 0xFF) | 0x100).substring(1, 3));
            }
            return sb.toString();
        }
    
        /**
         * 二次加密
         */
        public static String twoMd5Sha(String inputText) {
            return sha(md5(inputText));
        }
    
        /**
         * md5加密
         */
        public static String md5(String inputText) {
            return encrypt(inputText, "md5");
        }
    
        /**
         * sha加密
         */
        public static String sha(String inputText) {
            return encrypt(inputText, "sha-1");
        }
    
    }
    
    

    2.测试加密方法

    来分别调用一下md5和sha看一下不同的加密结果

    	public static void main(String[] args) {
            // md5加密测试
            String md5_1 = md5("123456");
            // sha加密测试
            String sha_1 = sha("123456");
            // 二次加密
            String res = twoMd5Sha("123456");
    
            System.out.println("sha加密:" + sha_1 + "\nmd5加密:" + md5_1 + "\n二次加密:" + res);
        }
    

    看一下结果吧

    在这里插入图片描述


    总结

    以上这些代码其实都是挺简单的,我们以后也可以慢慢来做些更加复杂的处理,慢慢积累慢慢加油吧

    展开全文
  • 主要介绍了Java实现产生随机字符串主键的UUID工具类,涉及java随机数与字符串遍历、转换等相关操作技巧,需要的朋友可以参考下
  • 随机数在实际中使用很广泛,比如要随即生成一个固定长度的字符串、数字。或者随即生成一个不定长度的数字、或者进行一个模拟的随机选择等等。Java提供了最基本的工具,可以帮助开发者来实现这一切
  • 主要介绍了java生成随机数(字符串)示例分享,需要的朋友可以参考下
  • java 生成随机字符串

    千次阅读 2018-06-13 22:00:53
    java 生成随机字符串 本文我们介绍java中如何生成随机字符串,首先介绍标准java库,然后介绍the Apache Commons Lang library。 java生成随机无限定字符串 首先简单生成7个字符的随机字符串: @Test...

    java 生成随机字符串

    本文我们介绍java中如何生成随机字符串,首先介绍标准java库,然后介绍the Apache Commons Lang library。

    java生成随机无限定字符串

    首先简单生成7个字符的随机字符串:

    @Test
    public void givenUsingPlainJava_whenGeneratingRandomStringUnbounded_thenCorrect() {
        byte[] array = new byte[7]; // length is bounded by 7
        new Random().nextBytes(array);
        String generatedString = new String(array, Charset.forName("UTF-8"));
     
        System.out.println(generatedString);
    }
    

    注意输出字符串不仅是字母或数字。

    java生成随机限定字符串

    下面我们生成一定范围的随机字符串,范围为小写字母并设定长度:

    @Test
    public void givenUsingPlainJava_whenGeneratingRandomStringBounded_thenCorrect() {
      
        int leftLimit = 97; // letter 'a'
        int rightLimit = 122; // letter 'z'
        int targetStringLength = 10;
        Random random = new Random();
        StringBuilder buffer = new StringBuilder(targetStringLength);
        for (int i = 0; i < targetStringLength; i++) {
            int randomLimitedInt = leftLimit + (int) 
              (random.nextFloat() * (rightLimit - leftLimit + 1));
            buffer.append((char) randomLimitedInt);
        }
        String generatedString = buffer.toString();
     
        System.out.println(generatedString);
    }
    

    Apache Commons Lang 生成随机限定字符串

    Apache Commons Lang 库提供很多随机生成字符串方法,下面看如何生成字母字符串:

    @Test
    public void givenUsingApache_whenGeneratingRandomStringBounded_thenCorrect() {
      
        int length = 10;
        boolean useLetters = true;
        boolean useNumbers = false;
        String generatedString = RandomStringUtils.random(length, useLetters, useNumbers);
     
        System.out.println(generatedString);
    }
    

    相比于java实现代码,仅一行就能轻松实现。

    Apache Commons Lang 生成字母字符串

    再看一个简单示例,限定输出为字母字符,但无需传入布尔参数:

    @Test
    public void givenUsingApache_whenGeneratingRandomAlphabeticString_thenCorrect() {
        String generatedString = RandomStringUtils.randomAlphabetic(10);
     
        System.out.println(generatedString);
    }
    

    Apache Commons Lang 生成字母和数字字符串

    最后,我们限定输出范围为(a-z, A-Z) 和数字 0-9:

    @Test
    public void givenUsingPlainJava_whenGeneratingRandomStringUnbounded_thenCorrect() {
        byte[] array = new byte[7]; // length is bounded by 7
        new Random().nextBytes(array);
        String generatedString = new String(array, Charset.forName("UTF-8"));
     
        System.out.println(generatedString);
    }
    

    分别使用标准Java api或Apache Commons库创建有限定范围和无限定范围字符串。

    总结

    本文介绍两种方法生成随机字符串,通过标准Java api或Apache Commons库创建有限定范围和无限定范围字符串。

    展开全文
  • import java.util.Random;public class RandomUtils {public static final String ALLCHAR = "0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";public static final String LETT...

    package com.test;

    import java.util.Random;

    public class RandomUtils {

    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(ALLCHAR.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();

    }

    /**

    * 根据数字生成一个定长的字符串,长度不够前面补0

    *

    * @param num 数字

    * @param fixdlenth 字符串长度

    * @return 定长的字符串

    */

    public static String toFixdLengthString(int 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;

    }

    public static void main(String[] args) {

    System.out.println(generateString(10));

    System.out.println(generateMixString(10));

    System.out.println(generateLowerString(10));

    System.out.println(generateUpperString(10));

    System.out.println(generateZeroString(10));

    System.out.println(toFixdLengthString(123, 10));

    System.out.println(toFixdLengthString(123L, 10));

    int[] in = {1,2,3,4,5,6,7};

    System.out.println(getNotSimple(in,3));

    }

    }

    展开全文
  • java生成随机字符串的两种方法

    千次阅读 2021-02-12 12:44:09
    本文实例为大家分享了java生成随机字符串的具体代码,供大家参考,具体内容如下import java.util.Random;public class CharacterUtils {//方法1:length为产生的位数public static String getRandomString(int ...
  • 原理就是使用random对象生成随机值,然后根据生成的随机值生成大小写字母或者是数字再拼接成字符串即可,其实准确来说应该是生成任意位数的随机字符串,因为randomSequence的入参size决定了字符串的长度 import ...
  • Java提供了许多不同的方法来编写随机字符串生成器应用程序,下面介绍几种方式。UUIDUUID是由一组32位数的16进制数字所构成,故UUID理论上的总数为1632=2128,约等于3.4 x 1038。也就是说若每纳秒产生1兆个UUID,要花...
  • Java随机字符串生成(12位)

    千次阅读 2021-02-25 19:52:55
    Java随机字符串生成 , 生成12位的随机字符串,同时插入到数据库,一天可以生成一千万个。1.[代码][Java]代码/** To change this template, choose Tools | Templates* and open the template in the editor.*/...
  • }   五、UUID UUID:表示一个可变的通用唯一标识符 加密安全 生成随机字符串: String temp = UUID.randomUUID().toString(); public static void getRandomByUUID(){ String temp = UUID.randomUUID().toString()...
  • java获取随机字符串

    千次阅读 2019-03-28 08:54:05
    //length用户要求产生字符串的长度 public static String getRandomString(int length){ String str="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789"; Random random=new Random(...
  • Java中生成一个随机字符串

    千次阅读 2020-09-25 16:15:07
    文中介绍了Math.random()方法和random.nextInt()方法的功能和使用比较。然后给出了生成N位随机数字和N位数字与字符的方法示例。
  • * 文件描述 : 生成指定长度随机字符串工具类 * 创建人员 : 幽默GUY * 创建日期 : 2018/12/18 0018 * 创建时间 : 10:04 * 最后修改 : */ public class RandomStringTool { private static String base...
  • 主要介绍了java基础-给出一个随机字符串,判断有多少字母?多少数字?文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
  • 下面就介绍一下通过Java程序生成这些随机字符串的方法。1. 随机生成n位由字母或数字组成的字符串public static String getRandomCharacterAndNumber(int length) {String val = "";Random random = new Random();for...
  • Java-随机字符串生成方式

    千次阅读 2018-07-09 16:50:05
    转自:...* 各种随机字符串生成的方法 * * @author Administrator * */ public class RandomString { public static final String ALLCHAR = "0123456789abc...
  • unique-string:生成一个唯一的随机字符串
  • Java生成随机字符串

    2015-12-24 13:07:08
    在很多项目中,需要用到随机字符串作为验证码存在。这里列出一例: public static String getRandomString(int length) { //length表示生成字符串的长度 String base = ...
  • 1、生成的字符串每个位置都有可能是str中的一个字母或数字,需要导入的包是import java.util.Random; //length用户要求产生字符串的长度 public static String getRandomString(int length){ String str=...
  • 主要为大家详细介绍了java随机生成10位数字符串ID的方法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
  • //生成指定长度的随机字符串String str=RandomStringUtils.randomAlphanumeric(10); 二、根据指定字符串生成指定长度的随机字符串  需要包:import java.util.Random;  String str=...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 161,107
精华内容 64,442
关键字:

java随机字符串

java 订阅