1

以下を含む必要があるパスワード制約を作成しようとしています。

-少なくとも 1 つの大文字

- 少なくとも 1 つの数字

- 少なくとも 5 文字の長さ

私はたくさん検索しましたが、うまくいきません

たとえば、私はこれを試しました

(len([PASSWORD])>(5) AND [PASSWORD] like '%[0-9]%' AND [PASSWORD] like '%[A-Z]%')

現在、パスワードに数字が含まれている場合は受け入れますが、パスワードに大文字がまったく含まれていない場合、または大文字のみが含まれている場合も受け入れます。これは私を混乱させ、多くの組み合わせを試しました

[password] LIKE '%[^a-zA-Z0-9]%'

それもうまくいきませんでした。私はstackoverflowから多くのコードスニペットを試しましたが、人々はそれを回答済みとしてマークしました。私は今とても混乱しています

(len([PASSWORD])>(5) AND [PASSWORD] like '%[A-Z]%' AND [PASSWORD] like '%[0-9]%')

これはパスワード「wefwefew123」を許可しないはずですよね?そうですね。ただし、「wefwefew」は受け入れないため、0 ~ 9 で機能します。AZ の何が問題なのですか?

それはおそらくばかげた間違いであり、後で私はおそらくばかげていると感じるでしょうが、私は自分でそれを解決することはできません.私はプロではないことに注意してください;)

4

1 に答える 1

0

大文字と小文字を区別する照合を使用して、コードを使用して以下のようにパスワードを小文字バージョンと比較してみてください。

(len([PASSWORD])>(5) AND [PASSWORD] like '%[0-9]%' 
AND [PASSWORD] <> Lower([PASSWORD]) COLLATE Latin1_General_CS_AI)

または、私自身の例は次のようになります。

Declare @Password varchar(20) = 'Hello'
if @Password <> Lower(@Password) COLLATE Latin1_General_CS_AI
    PRINT 'Upper'
else
    PRINT 'lower'
于 2015-05-26T08:26:51.040 に答える