为了账号安全,请及时绑定邮箱和手机立即绑定

密码需要带特殊字符

标签:
SQL Server

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

上面全文来自QQ留言。

 

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

5acf072b0001405b00110016.jpgusp_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

  

升级篇,可参考:密码需要带特殊字符(二)

 

点击查看更多内容
TA 点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
  • 推荐
  • 评论
  • 收藏
  • 共同学习,写下你的评论
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消