JS与SQL方式随机生成高强度密码示例


Posted in Javascript onDecember 29, 2018

本文实例讲述了JS与SQL方式随机生成高强度密码。分享给大家供大家参考,具体如下:

JS方式

<!DOCTYPE html>
<html>
  <head>
    <meta charset="UTF-8">
    <title>随机生成密码</title>
  </head>
  <body>
    <input type="button" onclick="RanPwd()" value="生成密码" />
    <span id="pwd"></span>
    <script>
      var numChar = ['0', '1', '2', '3', '4', '5', '6', '7', '8', '9'];
      var alphChar = ['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 syblChar = ['~', '!', '@', '#', '$', '%', '^', '&', '*', '-', '+', '?', '¥', ';', '"', '<', '>', '|'];
      function generatePwd() {
        var res = "";
        for(let i = 0; i < 2; i++) {
          var id = Math.floor(Math.random() * 10);
          res += numChar[id];
        }
        for(let j = 0; j < 3; j++) {
          var id = Math.floor(Math.random() * 26);
          res += alphChar[id];
        }
        for(let k = 0; k < 1; k++) {
          var id = Math.floor(Math.random() * 18);
          res += syblChar[id];
        }
        return res;
      }
      function strengthPwd(pwd) {
        var len = n = pwd.length-1;
        pwd = pwd.split("");
        var newPwd = "";
        for(var i = 0; i <= len; i++) {
          var id = Math.floor(Math.random() * n)
          newPwd += pwd.splice(id,1);
          n--;
        }
        return newPwd;
      }
      function RanPwd(){
        var prePwd = generatePwd();
        var pwd = strengthPwd(prePwd);
        document.getElementById("pwd").innerHTML = pwd;
      }
    </script>
  </body>
</html>

这里使用在线HTML/CSS/JavaScript代码运行工具:http://tools.3water.com/code/HtmlJsRun测试上述代码,可得如下运行结果:

JS与SQL方式随机生成高强度密码示例

SQL方式

--生成高强度的随机密码
declare @strPwd varchar(82)
declare @i int
declare @n int
declare @Index int
declare @pwd varchar(6)
declare @newPwd varchar(6)
set @i = 0
set @pwd = ''
set @newPwd = ''
set @strPwd = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ~!@#$%^&*-=+?.,;:|><'
while (@i < 6)
begin
  if(@i<2)
  begin
    set @Index = ceiling((rand() * 10))
  end
  else if(@i<5 and @i>=2)
  begin
    set @Index = ceiling(rand() * 52 + 10)
  end
  else if(@i=5)
  begin
    set @Index = ceiling(rand() * 20 + 62)
  end
  set @pwd = @pwd + substring(@strPwd,@Index,1)
  set @i = @i + 1
end
set @i = 0
set @n = LEN(@pwd)
while (@i < 6)
begin
 set @Index = ceiling(rand() * @n)
 set @newPwd = @newPwd + substring(@pwd,@Index,1)
 set @pwd = STUFF(@pwd,@Index,1,'')
 set @n = @n-1
 set @i = @i + 1
end
select @newPwd
Javascript 相关文章推荐
extjs 的权限问题 要求控制的对象是 菜单,按钮,URL
Mar 09 Javascript
jquery 显示*天*时*分*秒实现时间计时器
May 07 Javascript
Extjs根据条件设置表格某行背景色示例
Jul 23 Javascript
跟我学习javascript的this关键字
May 28 Javascript
jQuery实现div随意拖动的实例代码(通用代码)
Jan 28 Javascript
javascript实现不同颜色Tab标签切换效果
Apr 27 Javascript
JavaScript使用atan2来绘制箭头和曲线的实例
Sep 14 Javascript
性能优化篇之Webpack构建速度优化的建议
Apr 03 Javascript
微信小程序事件 bindtap bindinput代码实例
Aug 26 Javascript
在vue中利用全局路由钩子给url统一添加公共参数的例子
Nov 01 Javascript
只有 20 行的 JavaScript 模板引擎实例详解
May 11 Javascript
vue 项目软键盘回车触发搜索事件
Sep 09 Javascript
基于vue.js实现分页查询功能
Dec 29 #Javascript
小程序日历控件使用方法详解
Dec 29 #Javascript
jQuery实现的老虎机跑动效果示例
Dec 29 #jQuery
小程序自定义日历效果
Dec 29 #Javascript
微信小程序自定义带价格显示日历效果
Dec 29 #Javascript
微信小程序日历效果
Dec 29 #Javascript
微信小程序日历组件使用方法详解
Dec 29 #Javascript
You might like
PHP页面间参数传递的四种方法详解
2013/06/09 PHP
在PHP中使用FastCGI解析漏洞及修复方案
2015/11/10 PHP
PHP开发中常用的十个代码样例
2016/02/02 PHP
Symfony2安装的方法(2种方法)
2016/02/04 PHP
PHP终止脚本运行三种实现方法详解
2020/09/01 PHP
纯CSS打造的导航菜单(附jquery版)
2010/08/07 Javascript
javascript预览上传图片发现的问题的解决方法
2010/11/25 Javascript
JS仿flash上传头像效果实现代码
2011/07/18 Javascript
详解JavaScript中的every()方法
2015/06/08 Javascript
jquery实现初次打开有动画效果的网页TAB切换代码
2015/09/06 Javascript
浅析JS动态创建元素【两种方法】
2016/04/20 Javascript
基于jQuery插件实现点击小图显示大图效果
2016/05/11 Javascript
Javascript6中字符串的四个新用法分享
2016/09/11 Javascript
vue 2.0封装model组件的方法
2017/08/03 Javascript
微信小程序左滑动显示菜单功能的实现
2018/06/14 Javascript
用JS实现选项卡
2020/03/23 Javascript
vue中keep-alive内置组件缓存的实例代码
2020/04/16 Javascript
[56:41]2018DOTA2亚洲邀请赛 3.31 小组赛 A组 Newbee vs OG
2018/04/01 DOTA
[51:17]Mski vs VGJ.S Supermajor小组赛C组 BO3 第三场 6.3
2018/06/04 DOTA
python执行子进程实现进程间通信的方法
2015/06/02 Python
Python 堆叠柱状图绘制方法
2019/07/29 Python
python 使用cx-freeze打包程序的实现
2020/03/14 Python
美国网上眼镜商城:Zenni Optical
2016/11/20 全球购物
怀旧香味蜡烛:Homesick
2019/11/02 全球购物
Python使用openpyxl复制整张sheet
2021/03/24 Python
求职简历中自我评价
2014/01/28 职场文书
天猫某品牌专卖店运营计划书
2014/03/21 职场文书
小学学习雷锋活动总结
2014/07/03 职场文书
行政专员岗位职责范本
2014/08/26 职场文书
上班迟到检讨书范文300字
2014/11/02 职场文书
运动会闭幕词
2015/01/28 职场文书
2014年终个人总结报告
2015/03/09 职场文书
2019秋季运动会口号
2019/06/25 职场文书
redis不能访问本机真实ip地址的解决方案
2021/07/07 Redis
SQL Server使用T-SQL语句批处理
2022/05/20 SQL Server
Python实现数据的序列化操作详解
2022/07/07 Python