我的任务是创建一个为用户生成安全密码的解决方案。 我需要......
提示用户输入密码的长度,数量 特殊字符以及数字。
然后应使用这些输入随机生成密码。
例如输出:
密码长度是多少? 8
有多少特殊字符? 2
多少个号码? 2
您的密码是: AUN2 $ 1S#
我的编程水平处于初学阶段,这是迄今为止我所做的事情的例子
var x = document.querySelectorAll('[id^="entryField"]'),
empty = 0;
for (var i = 0; i < x.length; ++i) {
if (x[i].value == "") {
++empty;
}
}
if (empty !== 0 && empty !== x.length) {
alert("Please enter a value");
}
答案 0 :(得分:1)
c++17引入了sample
您想要使用的random_shuffle
以及password
生成的random_device rd;
mt19937 g(rd());
auto it = sample(cbegin(alphaBetArray), cend(alphaBetArray), begin(password), numberOfLetters, g);
it = sample(cbegin(specCharArray), cend(specCharArray), it, s, g);
sample(cbegin(numberArray), cend(numberArray), it, n, g);
:
random_shuffle
一对夫妇注意到:
generate_n
来实现。@PostConstruct
已在[{3}}中弃用,您现在需要使用c++14 答案 1 :(得分:0)
您“只是”错过了随机生成部分,您可以通过rand函数获取该部分。 所以在你的情况下将是:
for (int i=0; i<numberOfLetters; i++)
password += alphaBetArray[rand()%sizeof(alphaBetArray)];
for (int i=0; i<s; i++)
password += specCharArray[rand()%sizeof(specCharArray)];
for (int i=0; i<n; i++)
password += numberArray[rand()%sizeof(numberArray)];
请务必检查输入中的特殊字符和数字的总和,现在您只需检查单个条目,但有人可以输入:10(密码长度),6(特殊字符),7(数字),这是坏。
答案 2 :(得分:0)
生成p随机字符
生成特殊字符
生成n个随机数
连接它们并随机播放
string workout_pass(int p, int s, int n)
{
string password;
const char alphaBetArray[26] = {'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'};
const char specCharArray[10] = {'!','£','$','%','&','@','~','#','>','<'};
const char numberArray[10] = {'1','2','3','4','5','6','7','8','9','10'};
int numberOfLetters = p - s - n;
for (i = 0 ; i < numberOfLetters; ++i ) {
password += alphaBetArray[rand() % 26];
}
for (i = 0 ; i < s; ++i ) {
password += specCharArray[rand() % 10];
}
for (i = 0 ; i < n; ++i ) {
password += numberArray[rand() % 10];
}
random_shuffle(password.begin(), password.end());
return password;
}
一些意见: