複雑な要件のために入力パスワードをチェックするいくつかの正規表現があります。しかし、それは私のニーズに十分に堅牢ではありません。数字または特殊文字を含むパスワードの複雑さの正規表現
((?=.*\d)(?=.*[a-z])(?=.*[A-Z]).{8,20})
パスワードが最小長を満たし、両方の場合の文字を含み、数字が含まれていることを確認します。
しかし、数字や許可された特殊文字を含むように修正する必要があります。私は許可された特殊文字のリストを与えられています。
私は2つの問題があります。特殊文字を区切り、最初の条件に数字と特殊文字を一致または一致させることです。
これらの部分の正規表現の神からアドバイスをいただきたいと思います。
許さ特殊文字は以下のとおりです。@%+\/'!#$^?:.(){}[]~-_
例がないと、少し不明です。 。?(?=。* [az])(?=?*) 。* [AZ])。{8,20} $ "'](http://regexstorm.net/tester?p=%5e(%3f%3d。*%5b%5cd%40%25%2b%2f (%3f%3d。*%5ba-z%5d)(%3f%5d%5e%5e% 3d。*%5bA-Z%5d)。%7b8%2c20%7d%24&i =テキスト123%2fA)。私は理解しています "と"または "または"正規表現で "。ところで、 '$'や '\ z'がなくても実際に長さを制限していませんでした。 –
パスワードの最大長を制限する特別な理由はありますか?通常、これはノーノルのビットと考えられます。 – Phylogenesis
この種のパスワード強度の要件は賢明ではなく、最大長の設定はばかげています(これを行う必要がある場合は、ハッシュが間違っていることが示唆されます)。 https://xkcd.com/936/およびhttps://crackstation.net/hashing-security.htmを参照してください。 –