JS與SQL方式隨機(jī)生成高強度密碼示例
本文實例講述了JS與SQL方式隨機(jī)生成高強度密碼。分享給大家供大家參考,具體如下:
JS方式
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>隨機(jī)生成密碼</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.jb51.net/code/HtmlJsRun測試上述代碼,可得如下運行結(jié)果:

SQL方式
--生成高強度的隨機(jī)密碼
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
PS:這里再為大家提供兩款相關(guān)在線工具供大家參考使用:
在線隨機(jī)數(shù)字/字符串生成工具:
http://tools.jb51.net/aideddesign/suijishu
高強度密碼生成器:
http://tools.jb51.net/password/CreateStrongPassword
更多關(guān)于JavaScript相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《JavaScript數(shù)學(xué)運算用法總結(jié)》、《JavaScript數(shù)據(jù)結(jié)構(gòu)與算法技巧總結(jié)》、《JavaScript數(shù)組操作技巧總結(jié)》、《JavaScript排序算法總結(jié)》、《JavaScript遍歷算法與技巧總結(jié)》、《JavaScript查找算法技巧總結(jié)》及《JavaScript錯誤與調(diào)試技巧總結(jié)》
希望本文所述對大家JavaScript程序設(shè)計有所幫助。
相關(guān)文章
JavaScript使用遞歸和循環(huán)實現(xiàn)階乘的實例代碼
這篇文章主要介紹了JavaScript使用遞歸和循環(huán)實現(xiàn)階乘的實例代碼,代碼簡單易懂,非常不錯,具有一定的參考借鑒價值,需要的朋友參考下吧2018-08-08
js setTimeout實現(xiàn)延遲關(guān)閉彈出層
有時候我們希望彈出層能夠?qū)崿F(xiàn)延遲關(guān)閉,并且鼠標(biāo)在彈出層區(qū)域移動的時候能夠保持顯現(xiàn),下面是具體的實現(xiàn)代碼。2010-04-04
js 函數(shù)的執(zhí)行環(huán)境和作用域鏈的深入解析
在js中對象的外在表現(xiàn)形式為函數(shù)。2009-11-11
javascript window.open打開新窗口后無法再次打開該窗口問題的解決方法
這篇文章主要介紹了javascript window.open打開新窗口后無法再次打開該窗口問題的解決方法即無法再次打開窗口、第二次打開不了,需要的朋友可以參考下2014-04-04
微信小程序?qū)崙?zhàn)之雙人五子棋游戲是實現(xiàn)
這篇文章主要為大家詳細(xì)介紹了如何利用微信小程序?qū)崿F(xiàn)雙人五子棋游戲,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下2022-05-05
webpack使用及如何搭建cesium三維地球環(huán)境
這篇文章主要介紹了webpack快速上手之搭建cesium三維地球環(huán)境,本文使用的是webpack5,webpack5 升級后默認(rèn)是不支持polyfill的,編譯時會報錯,本文主要介紹了Cesium以及Webpack的使用,如何將Cesium一步步地集成到Webpack中,需要的朋友可以參考下2023-11-11
Javascript 數(shù)組添加一個 indexOf 方法的實現(xiàn)代碼
Javascript 的字符串有個 indexOf 的方法,能夠返回字符在指定的字符串中的位置,非常有用,本文介紹了如何給 Javascript 數(shù)組也添加一個類似的方法。2009-09-09

