我需要使用以下命令生成密码:
最小长度:7
最大长度:15
大写:至少一个字母
小写:至少一个字母
特殊字符~ ! @ # $ % ^ * ( ) _ +
?
我使用了随意的lib,但无法生成特殊字符。在这个问题上,有人可以帮我吗?
var casual = require('casual');
var password = casual.password.substring(10,{
length: 10,
uppercase: true,
lowercase: true,
number: true,
symbols: true,
strict: true
});
最佳答案
自己滚动应该很容易:
const lowercaseLetter = () => casual.random_element('ABCDEFGHIJKLMNOPQRSTUVWXYZ'.split(''));
const uppercaseLetter = () => casual.random_element('abcdefghijklmnopqrstuvwxyz'.split(''));
const specialCharacter = () => casual.random_element('~!@#$%^*()_+'.split(''));
const anyCharacter = () => casual.random_element([lowercaseLetter(), uppercaseLetter(), specialCharacter()]);
casual.define('specialPassword', function() {
const length = casual.integer(from = 7, to = 15);
const pw = [lowercaseLetter(), uppercaseLetter(), specialCharacter()];
while (pw.length < length) {
pw.push(anyCharacter());
}
return pw.join('');
});
当然,如果您关心“更安全”的密码,则应在最后一行随机播放
pw
。