javascript - 如何使用休闲库通过 javascript 生成假密码

标签 javascript npm protractor

我需要生成一个密码:

  • 最小长度:7
  • 最大长度:15
  • 大写:至少一个字母
  • 小写:至少一个字母
  • 特殊字符~! @# $ % ^ * ( ) _ + ?

我使用了休闲库,但无法生成特殊字符。有人可以帮我解决这个问题吗?

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 的顺序。

关于javascript - 如何使用休闲库通过 javascript 生成假密码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44636691/

相关文章:

javascript - 如何触发依赖于 2 个(或更多)条件的 JS 事件

javascript - 如何从 JavaScript 调用 CSS

javascript - esm 不解析模块别名

javascript - CSS3 - 有没有办法添加一些列过滤器?

javascript - 如何在我的功能场景 Cucumber.js 中使用标签?

javascript - 更新 Canvas 元素而不刷新页面

javascript - 谷歌表单 : Include hyperlink in Email of the Doc's Google Drive location

node.js - 全局安装 NPM 包时行为不一致

Npm:仅在作为依赖项安装时运行 postinstall 脚本

c# - 在 Protractor.NET 中只加载一次浏览器?