博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
密码需要带特殊字符
阅读量:7055 次
发布时间:2019-06-28

本文共 886 字,大约阅读时间需要 2 分钟。

“Hi,我看了你这篇 最后一种的写法随机产生密码,觉得很好,并应用在我的程序中,但是上星期老板对我说,要在随机产生的密码带有特殊字符。我再次测试过之后,才发现你的函数产生的密码只是大小写英文字母和数字,并无包含特殊字符,我要怎样改它呢?”

上面全文来自QQ留言。

 

解决你的问题,需要使用上面相同一篇博文的第二种方法相结合,才可以,其实方法还有其它的,下面仅是Insus.NET想到的一种,仅供你参考,有问题,请继续来信,留言或在线讨论:

ExpandedBlockStart.gif
usp_RandomPassword
ALTER 
PROCEDURE 
[
dbo
].
[
usp_RandomPassword
] 
(
   
@Length 
INT 
= 
8
)
AS
BEGIN  
    
DECLARE 
@RandomPassword  
NVARCHAR(
MAX
= N
'',
@L 
INT 
= 
1   
    
--
下面的变量,你可以自定制需要的特殊字符
    
DECLARE 
@SpecialCharacter 
NVARCHAR(
255
= 
'
@#$%&*?
'
    
WHILE 
@L 
<= 
@Length 
    
BEGIN         
       
--
下面这句,Insus.NET把2改为3。
        
DECLARE 
@R 
INT 
= 
ROUND(
RAND() 
* 
3
0
        
SET 
@RandomPassword 
= 
@RandomPassword 
+ 
CASE 
@R
        
WHEN 
0 
THEN 
CHAR(
ROUND(
RAND() 
* 
9 
+ 
48,
0)) 
        
WHEN 
1 
THEN 
CHAR(
ROUND(
RAND() 
* 
25 
+ 
65,
0)) 
        
WHEN 
2 
THEN 
CHAR(
ROUND(
RAND() 
* 
25 
+ 
97,
0)) 
        
WHEN 
3 
THEN 
SUBSTRING(
@SpecialCharacter
CONVERT(
TINYINT,
ROUND(
RAND() 
* 
6 
+ 
1,
0)),
1
END  
--
添加此句                                           
        
SET 
@L 
= 
@L 
+ 
1        
    
END
    
SELECT 
@RandomPassword
END

  

升级篇,可参考:

 

转载地址:http://mplol.baihongyu.com/

你可能感兴趣的文章