javascript - 随机密码生成器 JavaScript
问题描述
我正在使用窗口提示和 window.confirm 来询问用户是否要在密码中使用某些字符。(我知道我可以用一些 HTML 来做复选框,但这必须是 JS)。如何将确认答案传递给函数然后使用Math.floor(Math.random() * length)
?
const key_strings = {
lowercase: 'abcdefghijklmnopqrstuvwxyz',
uppercase: 'ABCDEFGHIJKLMNOPQRSTUVWXYZ',
number: '0123456789',
symbol: " !"#$%&'()*+,-./:;<=>?@[\]^_`{|}~",
};
function generatePassword() {
passwordCharSet = "";
var length = window.prompt("Enter a number from 8 to 128 for password length.");
var lowercase = window.confirm("Would you like to use lowercase letters?");
if (lowercase == true) {
passwordCharSet += lowercase;
};
var uppercase = window.confirm("Would you like to use uppercase letters?");
if (uppercase == true) {
passwordCharSet += uppercase;
};
var symbols = window.confirm("Would you like to use symbols?");
if (symbols == true) {
passwordCharSet += symbols;
};
var numbers = window.confirm("Would you like to use numbers?");
if (numbers == true) {
passwordCharSet += numbers;
};
for (let i = 0; i < length; i++) {
_______________ Math.floor(Math.random() * length)
}
}
我也不确定math.floor 还能放什么。
解决方案
您需要连接 to 的属性,key_string
而passwordCharSet
不是对提示的响应。
获取随机字符时,需要索引passwordCharSet
并使用passwordCharSet.length
.
在key_strings.symbol
你需要逃避"
和\
。
const key_strings = {
lowercase: 'abcdefghijklmnopqrstuvwxyz',
uppercase: 'ABCDEFGHIJKLMNOPQRSTUVWXYZ',
number: '0123456789',
symbol: "!\"#$%&'()*+,-./:;<=>?@[\\]^_`{|}~",
};
function generatePassword() {
var passwordCharSet = "";
var length = window.prompt("Enter a number from 8 to 128 for password length.");
var lowercase = window.confirm("Would you like to use lowercase letters?");
if (lowercase) {
passwordCharSet += key_strings.lowercase;
};
var uppercase = window.confirm("Would you like to use uppercase letters?");
if (uppercase) {
passwordCharSet += key_strings.uppercase;
};
var symbols = window.confirm("Would you like to use symbols?");
if (symbols) {
passwordCharSet += key_strings.symbol;
};
var numbers = window.confirm("Would you like to use numbers?");
if (numbers) {
passwordCharSet += key_strings.number;
};
var password = "";
for (let i = 0; i < length; i++) {
password += passwordCharSet[Math.floor(Math.random() * passwordCharSet.length)]
}
return password;
}
console.log(generatePassword());
推荐阅读
- microsoft-graph-api - Microsoft Graph-Delete planner task-Resource not found for the segment (ETag)?
- python - 有没有更好的方法来区分书名和作者?
- coldfusion - 获取运行时 ColdFusion 语法树?
- python - PIL putpixels 函数
- ruby-on-rails - Rails routes.rb 帮助
- java - 如何使我的应用程序延迟并在循环的每次迭代中更新布局的组件
- c - 如何在 C 中有效地拆分字符串和复制子字符串?
- r - 从 data.table 包中读取带有 fread 函数的 zip 文件时出错
- docker - 如何在 Dockerfile 中将 Ubuntu 包/存储库转换为 Alpine?
- angular - Angular 7 从 json 中获取多个值