我需要使用以下命令生成密码:


最小长度: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

09-25 17:53