Sql密码生成器 - 8个字符,上下包含一个数字

Dot*_*Net 4 sql t-sql sql-server

我需要在TSQL中创建一个新密码,该密码需要包含8个字符(az),其中必须包含上下字符以及至少一个数字.

谁能帮我这个?

Gri*_*aub 23

select cast((Abs(Checksum(NewId()))%10) as varchar(1)) + 
       char(ascii('a')+(Abs(Checksum(NewId()))%25)) +
       char(ascii('A')+(Abs(Checksum(NewId()))%25)) +
       left(newid(),5)
from yourTable
Run Code Online (Sandbox Code Playgroud)

  • 确保密码符合要求的良好答案,但要注意,因为结构是可预测的,有效强度大大降低. (2认同)

Jos*_*Lee 5

需要考虑的事情,有点复杂:

SELECT      TOP 8
            SUBSTRING(tblSource.vsSource, tblValue.number + 1, 1) AS vsChar
FROM        (SELECT 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789' AS vsSource) AS tblSource
            JOIN master..spt_values AS tblValue 
                ON tblValue.number < len(tblSource.vsSource)
WHERE       tblValue.type = 'P'
ORDER BY    NEWID()
Run Code Online (Sandbox Code Playgroud)

但非常随机.

  • 更新版本对我有用:`select(SELECT TOP 8 SUBSTRING(tblSource.vsSource,tblValue.number + 1,1)FROM(SELECT'abcdefhkmnpqrstuvwxyzABCDEFHKMNPQRSTUVWXYZ23456789 + = -_~#$%*()'AS vsSource)AS tblSource JOIN master ..spt_values AS tblValue ON tblValue.number <len(tblSource.vsSource)WHERE tblValue.type ='P'ORDER BY NEWID()FOR XML PATH(''))` (2认同)