利用javascript如何随机生成一定位数的密码


Posted in Javascript onSeptember 22, 2017

前言

本文主要给大家介绍了关于利用javascript随机生成一定位数密码的相关内容,分享出来供大家参考学习,下面话不多少,来一起看看详细的介绍吧。

需求

随机生成一定位数的密码,有最小个数和最大个数,必须包含数字、大小写字母,和特殊字符比如(- _ #);

代码

function createPassword(min,max) {
 //可以生成随机密码的相关数组
 var num = ["0","1","2","3","4","5","6","7","8","9"];
 var english = ["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"];
 var ENGLISH = ["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"];
 var special = ["-","_","#"];
 var config = num.concat(english).concat(ENGLISH).concat(special);

 //先放入一个必须存在的
 var arr = [];
 arr.push(getOne(num));
 arr.push(getOne(english));
 arr.push(getOne(ENGLISH));
 arr.push(getOne(special));

 //获取需要生成的长度
 var len = min + Math.floor(Math.random()*(max-min+1));

 for(var i=4; i<len; i++){
  //从数组里面抽出一个
  arr.push(config[Math.floor(Math.random()*config.length)]);
 }

 //乱序
 var newArr = [];
 for(var j=0; j<len; j++){
  newArr.push(arr.splice(Math.random()*arr.length,1)[0]);
 }

 //随机从数组中抽出一个数值
 function getOne(arr) {
  return arr[Math.floor(Math.random()*arr.length)];
 }

 return newArr.join("");
 }

使用

传入一个生成的密码的最小位数,和最大位数,即可返回一个随机密码

console.log(createPassword(8,15));

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作能带来一定的帮助,如果有疑问大家可以留言交流,谢谢大家对三水点靠木的支持。

Javascript 相关文章推荐
JQuery Easyui Tree的oncheck事件实现代码
May 28 Javascript
巧用局部变量提升javascript性能
Feb 24 Javascript
Javascript加载速度慢的解决方案
Mar 11 Javascript
js实现头像图片切割缩放及无刷新上传图片的方法
Jul 17 Javascript
javascript实现信息增删改查的方法
Jul 25 Javascript
使用jQuery或者原生js实现鼠标滚动加载页面新数据
Mar 06 Javascript
Javascript基础_标记文字的实现方法
Jun 14 Javascript
addEventListener()与removeEventListener()解析
Apr 20 Javascript
基于substring()和substr()的使用以及区别(实例讲解)
Dec 28 Javascript
Js面试算法详解
Apr 08 Javascript
Vue form表单动态添加组件实战案例
Sep 02 Javascript
原生小程序封装跑马灯效果
Oct 21 Javascript
ES6中新增的Object.assign()方法详解
Sep 22 #Javascript
Vee-Validate的使用方法详解
Sep 22 #Javascript
Js中async/await的执行顺序详解
Sep 22 #Javascript
Node.js自定义实现文件路由功能
Sep 22 #Javascript
详解bootstrap用dropdown-menu实现上下文菜单
Sep 22 #Javascript
javascript计算渐变颜色的实例
Sep 22 #Javascript
利用Node.js了解与测量HTTP所花费的时间详解
Sep 22 #Javascript
You might like
php smarty模版引擎中的缓存应用
2009/12/02 PHP
如何修改和添加Apache的默认站点目录
2013/07/05 PHP
php绘图之加载外部图片的方法
2015/01/24 PHP
php多次include后导致全局变量global失效的解决方法
2015/02/28 PHP
PHP设计模式之装饰者模式代码实例
2015/05/11 PHP
PHP多进程之pcntl_fork的实例详解
2017/10/15 PHP
thinkPHP利用ajax异步上传图片并显示、删除的示例
2018/09/26 PHP
thinkPHP+LayUI 流加载实现功能
2019/09/27 PHP
javascript 学习之旅 (1)
2009/02/05 Javascript
javascript中xml操作实现代码
2011/11/21 Javascript
ExtJS实现文件下载的方法实例
2013/11/09 Javascript
基于JavaScript实现瀑布流布局(二)
2016/01/26 Javascript
jQuery获取访问者IP地址的方法(基于新浪API与QQ查询接口)
2016/05/25 Javascript
一种基于浏览器的自动小票机打印实现方案(js版)
2016/07/26 Javascript
详解node-ccap模块生成captcha验证码
2017/07/01 Javascript
bootstrap table合并行数据并居中对齐效果
2018/10/17 Javascript
JavaScript实现shuffle数组洗牌操作示例
2019/01/03 Javascript
[04:00]DOTA2解说界神雕侠侣 CJ第四天谷子现场过生日
2013/07/30 DOTA
[01:06:07]2014 DOTA2国际邀请赛中国区预选赛5.21 DT VS CIS
2014/05/22 DOTA
python进程类subprocess的一些操作方法例子
2014/11/22 Python
Python编程之属性和方法实例详解
2015/05/19 Python
bpython 功能强大的Python shell
2016/02/16 Python
python基于物品协同过滤算法实现代码
2018/05/31 Python
Selenium的使用详解
2018/10/19 Python
Python线上环境使用日志的及配置文件
2019/07/28 Python
如何通过python的fabric包完成代码上传部署
2019/07/29 Python
Django重设Admin密码过程解析
2020/02/10 Python
Python列表倒序输出及其效率详解
2020/03/04 Python
纯CSS实现聊天框小尖角、气泡效果
2014/04/04 HTML / CSS
英国精品买手店:Browns Fashion
2016/09/29 全球购物
美国户外生活方式品牌:Eddie Bauer
2016/12/28 全球购物
Cotton On南非:澳洲时尚平价品牌
2018/06/28 全球购物
Troy-Bilt官网:草坪割草机、吹雪机、分蘖机等
2019/02/19 全球购物
运动会加油稿100字
2014/09/19 职场文书
自定义函数实现单词排序并运用于PostgreSQL(实现代码)
2021/04/22 PostgreSQL
启动Tomcat时出现大量乱码的解决方法
2021/06/21 Java/Android