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 相关文章推荐
Javascript与flash交互通信基础教程
Aug 07 Javascript
JavaScript学习点滴 call、apply的区别
Oct 22 Javascript
JS、CSS加载中的小问题探讨
Nov 26 Javascript
js中typeof的用法汇总
Dec 12 Javascript
node.js中的querystring.stringify方法使用说明
Dec 10 Javascript
jquery实现初次打开有动画效果的网页TAB切换代码
Sep 06 Javascript
php利用curl获取远程图片实现方法
Oct 26 Javascript
jquery.cookie.js实现用户登录保存密码功能的方法
Apr 15 Javascript
Jquery调用iframe父页面中的元素及方法
Aug 23 Javascript
Vue 换肤的示例实践
Jan 23 Javascript
vue elementui el-form rules动态验证的实例代码详解
May 23 Javascript
LayUI数据接口返回实体封装的例子
Sep 12 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
Apache, PHP在Windows 9x/NT下的安装与配置 (二)
2006/10/09 PHP
php面向对象全攻略 (十六) 对象的串行化
2009/09/30 PHP
PHP时间格式控制符对照表分享
2013/07/23 PHP
php mb_substr()函数截取中文字符串应用示例
2014/07/29 PHP
php身份证号码检查类实例
2015/06/18 PHP
php ZipArchive实现多文件打包下载实例
2019/10/31 PHP
PHP上传图片到数据库并显示的实例代码
2019/12/20 PHP
PHP设计模式(七)组合模式Composite实例详解【结构型】
2020/05/02 PHP
不错的asp中显示新闻的功能
2006/10/13 Javascript
js 目录列举函数
2008/11/06 Javascript
无阻塞加载脚本分析[全]
2011/01/20 Javascript
JS等比例缩小图片尺寸的实例
2013/02/27 Javascript
js函数setTimeout延迟执行的简单介绍
2013/07/17 Javascript
node.js中http模块和url模块的简单介绍
2017/10/06 Javascript
vue checkbox 全选 数据的绑定及获取和计算方法
2018/02/09 Javascript
vue和react等项目中更简单的实现展开收起更多等效果示例
2018/02/22 Javascript
Vue结合后台导入导出Excel问题详解
2019/02/19 Javascript
vue 解决computed修改data数据的问题
2019/11/06 Javascript
[53:10]Secret vs Pain 2018国际邀请赛小组赛BO2 第一场 8.17
2018/08/20 DOTA
Python 模板引擎的注入问题分析
2017/01/01 Python
Pycharm学习教程(3) 代码运行调试
2017/05/03 Python
sublime python3 输入换行不结束的方法
2018/04/19 Python
python爬虫简单的添加代理进行访问的实现代码
2019/04/04 Python
Python Pandas 获取列匹配特定值的行的索引问题
2019/07/01 Python
Tensorflow的常用矩阵生成方式
2020/01/04 Python
Python批量安装卸载1000个apk的方法
2020/04/10 Python
在主流系统之上安装Pygame的方法
2020/05/20 Python
澳大利亚最大的护发和护肤品购物网站:RY
2019/12/26 全球购物
光盘行动倡议书
2014/02/02 职场文书
日语专业个人求职信范文
2014/02/02 职场文书
2014年党员公开承诺书范文
2014/03/28 职场文书
销售提升方案
2014/06/07 职场文书
教师三严三实心得体会
2014/10/11 职场文书
企业整改报告范文
2014/11/08 职场文书
2019年公司卫生管理制度样本
2019/08/21 职场文书
PostgreSQL 插入INSERT、删除DELETE、更新UPDATE、事务transaction
2022/04/12 PostgreSQL