随机产生密码,Insus.NET总结了三个,并分别写成了存储过程。
第一个,
代码如下 | 复制代码 |
usp_RandomPassword CREATE PROCEDURE [dbo].[usp_RandomPassword] |
第二个,
代码如下 | 复制代码 |
usp_RandomPassword CREATE PROCEDURE [dbo].[usp_RandomPassword] ( @Length INT = 8 ) AS BEGIN DECLARE @RandomPassword NVARCHAR(MAX) = N'',@L INT = 1 --随机密码将由下面字符串产生,数字0-9,大写字母A-Z,小写字母a-z DECLARE @BaseString VARCHAR(255) = '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz' WHILE @L <= @Length --循环密码长度 BEGIN --61是变量@BaseString的长度减一 SET @RandomPassword = @RandomPassword + SUBSTRING(@BaseString, CONVERT(INT,ROUND(RAND() * 61 + 1,0)),1) SET @L = @L + 1 END SELECT @RandomPassword END |
第三个,
代码如下 | 复制代码 |
usp_RandomPassword CREATE PROCEDURE [dbo].[usp_RandomPassword] ( @Length INT = 8 ) AS BEGIN DECLARE @RandomPassword NVARCHAR(MAX) = N'' DECLARE @R TINYINT,@L INT = 1 WHILE @L <= @Length --循环密码长度 BEGIN SET @R = ROUND(RAND() * 2, 0) --随机产生0,1,2整数 IF @R = 0 --当变量为0时,将随机产生一位数字 SET @RandomPassword = @RandomPassword + CHAR(ROUND(RAND() * 9 + 48,0)) ELSE IF @R = 1 --当变量为1时,将随机产生一位大写字母 SET @RandomPassword = @RandomPassword + CHAR(ROUND(RAND() * 25 + 65,0)) ELSE IF @R = 2 --当变量为2时,将随机产生一位小写字母 SET @RandomPassword = @RandomPassword + CHAR(ROUND(RAND() * 25 + 97,0)) SET @L = @L + 1 END SELECT @RandomPassword END |
最后一个也可以重构写成:
代码如下 | 复制代码 |
usp_RandomPassword CREATE PROCEDURE [dbo].[usp_RandomPassword] Also reference: |
创造与魔法 安卓版v1.0.0750
创造与魔法是一款开放世界手游,在游戏中玩家可探索这个奇妙的世
创造与魔法修改版 最新版v1.0.0750
创造与魔法无限点券版是款探索冒险游戏,该款游戏的操作还是蛮自
战争与文明官方版本 安卓版v1.7.16
战争与文明是一款由上海邮通科技有限公司开发的战争策略游戏,这
迷你世界0元领皮肤无限迷你币版 最新安卓版v1.43.0
迷你世界0元购买皮肤版是这款开放沙盒冒险建造游戏的特殊破解版
创造与魔法无限经验版 安卓版v1.0.0750
创造与魔法无限经验版是款可以改造环境,整个游戏的自由度还是蛮