随机生成密码,长度6-10位、不可包含特殊字符、必须包含大写、小写和数字,oracle 如何实现?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了随机生成密码,长度6-10位、不可包含特殊字符、必须包含大写、小写和数字,oracle 如何实现?相关的知识,希望对你有一定的参考价值。
个人感觉可以利用md5的加密方式获得字符串(orale中有能生成md5字符串的函数),然后在利用这个字符串截取,这种字符串一般包括你想要的大写小写和数字,只是这个函数只能用在存储过程中。md5我记得好像是就算输入的内容一样,字符串也不同,那么就可以认为是随机的。如果没有大写,那么改一个字母就好了。 参考技术A 写下思路,可用字符全放一个字符数组里,随机生成即可。追问
随机从字符中取数,也可能全部随机到字母,要求是必须包含,而不是范围内。
追答那也好办,弄三个数组,大写、小写、数字,然后再去随机,先随机每个数组各取一个,这就有3位了,后几个再纯随机取,取的个数为3-7中的随机数,取出后组合在一起,组合好后前三位格式比较固定,可以再随机乱序一次,这种乱序算法我不知道有无现成的,但利用随机数写一个绝对不难,希望可以帮到你。
本回答被提问者采纳mkpasswd-随机生成密码
在工作中,经常有创建用户的需求,此时可以使用mkpasswd为用户生成随机密码:
安装包:yum install expect -y
相关参数:
-l:指定密码长度
-d:指定包含数字的个数
-s:指定包含特殊符号的个数
-C:指定大写字母的个数
示例:随机生成一个10位的密码,不需要特殊符号:
[[email protected] ~]# mkpasswd -l 10 -s 0
r95MowzbIk
以上是关于随机生成密码,长度6-10位、不可包含特殊字符、必须包含大写、小写和数字,oracle 如何实现?的主要内容,如果未能解决你的问题,请参考以下文章