Java 生成必须包含字母、数字和特殊字符(6-10位)的随机字符串
我正在生成一个6到10位数的密码 这是我的密码,给我6-10位的随机密码Java 生成必须包含字母、数字和特殊字符(6-10位)的随机字符串,java,scala,random,playframework,passwords,Java,Scala,Random,Playframework,Passwords,我正在生成一个6到10位数的密码 这是我的密码,给我6-10位的随机密码 val AB = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789:<=>?@_!#%&()*+,-.~"; val rnd = new Random(); def randomPassword(): String = { val len = rnd.nextInt(5) + 5 val sb = new S
val AB = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789:<=>?@_!#%&()*+,-.~";
val rnd = new Random();
def randomPassword(): String = {
val len = rnd.nextInt(5) + 5
val sb = new StringBuilder(len);
for (i <- 0 to len)
sb.append(AB.charAt(rnd.nextInt(AB.length())));
return sb.toString();
}
val AB=“abcdefghijklmnopqrstuvxyzabcdefghijklmnopqrstuvxyz012456789:?@!#%&()*+,-.~”;
val rnd=新随机数();
def randomPassword():字符串={
val len=下一个变量(5)+5
val sb=新的StringBuilder(len);
对于(i首先生成所有字母的随机密码,然后根据需要将部分字母替换为数字/特殊字符
(顺便说一句,我不熟悉Scala,所以我将使用Java的语法,因为我不知道键入的内容是否有效。很抱歉。)
//将源字符串拆分为字母、数字和特殊字符
字符串AB=“abcdefghijklmnopqrstuvxyzabefghijklmnopqrstuvxyz”;
字符串编号=“0123456789”;
String specials=“:?@#%&()*+,-.~”;
字符串随机密码(){
StringBuilder sb=新的StringBuilder();
int len=rnd.nextInt(5)+5;
//首先用字母生成密码。这部分与原始代码相同。
对于(int i=0;i首先生成所有字母的随机密码,然后根据需要将部分字母替换为数字/特殊字符
(顺便说一句,我不熟悉Scala,所以我将使用Java的语法,因为我不知道键入的内容是否有效。很抱歉。)
//将源字符串拆分为字母、数字和特殊字符
字符串AB=“abcdefghijklmnopqrstuvxyzabefghijklmnopqrstuvxyz”;
字符串编号=“0123456789”;
String specials=“:?@#%&()*+,-.~”;
字符串随机密码(){
StringBuilder sb=新的StringBuilder();
int len=rnd.nextInt(5)+5;
//首先用字母生成密码。这部分与原始代码相同。
对于(int i=0;i首先生成所有字母的随机密码,然后根据需要将部分字母替换为数字/特殊字符
(顺便说一句,我不熟悉Scala,所以我将使用Java的语法,因为我不知道键入的内容是否有效。很抱歉。)
//将源字符串拆分为字母、数字和特殊字符
字符串AB=“abcdefghijklmnopqrstuvxyzabefghijklmnopqrstuvxyz”;
字符串编号=“0123456789”;
String specials=“:?@#%&()*+,-.~”;
字符串随机密码(){
StringBuilder sb=新的StringBuilder();
int len=rnd.nextInt(5)+5;
//首先用字母生成密码。这部分与原始代码相同。
对于(int i=0;i首先生成所有字母的随机密码,然后根据需要将部分字母替换为数字/特殊字符
(顺便说一句,我不熟悉Scala,所以我将使用Java的语法,因为我不知道键入的内容是否有效。很抱歉。)
//将源字符串拆分为字母、数字和特殊字符
字符串AB=“abcdefghijklmnopqrstuvxyzabefghijklmnopqrstuvxyz”;
字符串编号=“0123456789”;
String specials=“:?@#%&()*+,-.~”;
字符串随机密码(){
StringBuilder sb=新的StringBuilder();
int len=rnd.nextInt(5)+5;
//首先用字母生成密码。这部分与原始代码相同。
对于(int i=0;idef randomPassword():字符串={
val len=下一个变量(5)+5
val sb=新的StringBuilder(len);
对于(idef randomPassword():字符串={
val len=下一个变量(5)+5
val sb=新的StringBuilder(len);
对于(idef randomPassword():字符串={
val len=下一个变量(5)+5
val sb=新的StringBuilder(len);
对于(idef randomPassword():字符串={
val len=下一个变量(5)+5
val sb=新的StringBuilder(len);
对于(i您可以应用while循环的原理
将附加的密码存储到变量中
使用while循环检查密码是否不包含数字和/或符号,如果不包含,请再次重新生成密码并将其存储到变量中
当while循环自动中断时,返回变量
您可以应用while循环的原理
将附加的密码存储到变量中
使用while循环检查密码是否不包含数字和/或符号,如果不包含,请再次重新生成密码并将其存储到变量中
当while循环自动中断时,返回变量
您可以应用while循环的原理
将附加的密码存储到变量中
使用while循环检查密码是否不包含数字和/或符号,如果不包含,请再次重新生成密码并将其存储到变量中
当while循环自动中断时,返回变量
您可以应用while循环的原理
将附加的密码存储到变量中
使用while循环检查密码是否不包含数字和/或符号,如果不包含,请再次重新生成密码并将其存储到变量中
当while循环自动中断时,返回变量
imho的简单解决方案是(伪代码)
除非你已经有了最长密码,否则这永远不会减少熵。简单的解决方案是(伪代码)
除非你已经有了最长密码,否则这永远不会减少熵。简单的解决方案是(伪代码)
除非你已经有了最长密码,否则这永远不会减少熵。简单的解决方案是(伪代码)
这永远不会减少熵,除非你已经有了一个最大长度密码。使用不可变的数据结构对scala来说更为惯用
protected def nextChar(): Char = Random.nextPrintableChar()
def randomString(length: Int = 10): String = {
(0 until length).map(_ => nextChar()).mkString
}
编辑:
为了确保字符串中始终有数字、特殊字符和字母,我将分别生成每一类字母,然后在函数中随机连接它们
def randomPassword(): String = {
val len = rnd.nextInt(5) + 5
val sb = new StringBuilder(len);
for (i <- 0 to len)
sb.append(AB.charAt(rnd.nextInt(AB.length())));
if(sb.toString is allString or allNum){
return randomPassword();
}
return sb.toString();
}
generate password
if no alphabet;
if not max length;
add an alphabet
else
change last letter with an alphabet
if no digit;
if not max length;
add an digit
else
change first letter with an digit
if no special;
if not max length;
add an special
else
change second letter with an special
protected def nextChar(): Char = Random.nextPrintableChar()
def randomString(length: Int = 10): String = {
(0 until length).map(_ => nextChar()).mkString
}
$length = 45;
$chars = array_merge(range(0,9), range('a','z'), range('A','Z'));
shuffle($chars);
$password = implode(array_slice($chars, 0, $length));
echo "This is the password: ".$password;
This is the password: wmU7KaZoOCIf4qn2tz5E06jiQgHvhR9dyBxrFYAePcDWk
object password {
import scala.util.Random
import scala.collection.immutable.Stream
private def gen = Random.alphanumeric
def get(len: Int): String = {
def build(acc: String, s: Stream[Char]): String = {
if (s.isEmpty) acc
else build(acc + s.head, s.tail)
}
build("", gen take len)
}
}
1 to 25 foreach { _ => println(password get 8) }
YBk2UrOV
GD4eLexS
l8yxAkp9
ooQnaRpd
NgHAruB8
pMXpi4ad