当前位置:首页 > 话题广场 > 攻略专题 > 游戏问答

几行代码搞定生成符合要求的随机密码,快来看看是否和你想的一样?

今天生成的密码长度为8-16位,需要包含数字、大写和小写3个字符,被要求生成初始密码。

平常都是使用hutool工具类进行字符处理,所以本次就基于hutool进行实现需求。

hutool官方文档参考地址:,hutool里面封装的方法很多,基本上能覆盖平常常用的方法,省去了自己封装工具类的过程,所以推荐使用!

发现hutool并没有提供完全满足要求的方法,自己就根据现有的方法进行封装实现这个需求.具体处理过程如下:

首先需要引入的hutool依赖:

<dependency> <groupId>cn.hutool</groupId> <artifactId>hutool-all</artifactId> <version>5.8.2</version> </dependency>

第一步实际需要做的处理就是在给定的字符串信息中选择生成8-16位随机字符,可以使用RandomU(String baseString, int length)进行实现;该方法实现的原理如下:

/** * 获得一个随机的字符串 * * @param baseString 随机字符选取的样本 * @param length 字符串的长度 * @return 随机字符串 */ public static String randomString(String baseString, int length) { if (baseString)) { return S; } final StringBuilder sb = new StringBuilder(length); if (length < 1) { length = 1; } int baseLength = ba(); for (int i = 0; i < length; i++) { int number = randomInt(baseLength); (number)); } return (); }

第二步是校验生成的随机数中是否包含数字、大小写的字符,可以使用S(CharSequence str, CharSequence... testStrs)实现,实现原理如下:

/** * 查找指定字符串是否包含指定字符串列表中的任意一个字符串 * * @param str 指定字符串 * @param testStrs 需要检查的字符串数组 * @return 是否包含任意一个字符串 * @since 3.2.0 */ public static boolean containsAny(CharSequence str, CharSequence... testStrs) { return null != getContainsStr(str, testStrs); }/** * 查找指定字符串是否包含指定字符串列表中的任意一个字符串,如果包含返回找到的第一个字符串 * * @param str 指定字符串 * @param testStrs 需要检查的字符串数组 * @return 被包含的第一个字符串 * @since 3.2.0 */ public static String getContainsStr(CharSequence str, CharSequence... testStrs) { if (isEmpty(str) || ArrayU(testStrs)) { return null; } for (CharSequence checkStr : testStrs) { if ().contains(checkStr)) { return c(); } } return null; }

对以上两个方法进行组装之后即可满足业务要求,注意生成的随机数必须包含三种字符,所以需要对生成的随机信息进行校验,如果不满足要求则继续生成。实现代码如下:

public class TestRandom{ private static final String upperStr="ABCDEFGHIJKLMNOPQRSTUVWXYZ"; private static final String lowerStr="abcdefghijklmnopqrstuvwxyz"; private static final String numStr="1234567890"; public static void main(String[] args) { String randomString=""; // 校验生成的随机数是否包含数字、大小写字母,如果不包含就重新生成。 while (!(randomString,upperArray) && S(randomString,lowerArray) && S(randomString,numArray))){ // 生成8到17之间的随机整数(包含8不包含17) int randomInt = RandomU(8, 17); randomString = RandomU(upperStr + lowerStr + numStr, randomInt); } Sy(randomString); } }

上面是全部实现过程,大家也可以使用原生的方法进行实现,hutool提供的工具类只不过是在原生方法基础上封装了一下.对于要求生成其他格式的字符串需求可以参考上述方案进行实现!

—— END ——

作者| 卖柴火的小男孩啊

多年后端开发经验,坚持分享更多java干货内容!

如果你喜欢我的文章,不妨点赞、转发、收藏一下哦!

1.《几行代码搞定生成符合要求的随机密码,快来看看是否和你想的一样?》援引自互联网,旨在传递更多网络信息知识,仅代表作者本人观点,与本网站无关,侵删请联系页脚下方联系方式。

2.《几行代码搞定生成符合要求的随机密码,快来看看是否和你想的一样?》仅供读者参考,本网站未对该内容进行证实,对其原创性、真实性、完整性、及时性不作任何保证。

3.文章转载时请保留本站内容来源地址,https://www.lu-xu.com/gl/3142174.html

上一篇

关于怎么弄全民K歌合唱,你需要知道这些一键匹配歌友,全民K歌“心动对唱”助力同好社交

关于怎么弄字符密码,你需要知道这些JavaScript,NodeJS,生成随机码,生成含特殊字符的随机密码

关于怎么弄字符密码,你需要知道这些JavaScript,NodeJS,生成随机码,生成含特殊字符的随机密码

怎么弄字符密码相关介绍,随机代码和密码函数及代码生成 /* * *数字字符串 * @ param {*}长度 * @returns */ Function random word 1(长度){ //指定长度:默认长度为8位 ...

怎么弄字符密码?我来告诉你答案我的第四个项目:Python自动生成密码

怎么弄字符密码?我来告诉你答案我的第四个项目:Python自动生成密码

怎么弄字符密码相关介绍,几天内整理第四个python项目,主要使用python内置模块自动生成指定长度的密码。 前三个项目: 第三个项目,爬取网易云音乐每日推荐歌单,然后定时自动发送到朋友邮箱 我的第二个Python趣味项目...