- 1つ以上の小文字が含まれています。
- 少なくとも1つの数字が含まれ、最初と最後の位置を除くすべての場所に存在できます。
- これには、最初と最後の位置を除くすべての場所に存在できる特殊文字(英数字以外の文字、つまり記号)が1つ以上含まれています。
- ユーザーIDには2つ以上の文字シーケンスが含まれていません。
- これはユーザーIDの反転ではなく、ユーザーIDの反転も含みません。
- 以前の選択項目または指定されたパスワードの3つ以上の文字シーケンスは含まれていません。
- パスワードに複数の文字(a39tzb39rなど)が複数回含まれていません。
- 3つ以上の繰り返しまたは連続した数字または文字のシーケンスを含まない(例:ax222rm、ct15mnoRx)。
個別にテストできるコマンドを教えてください。
ベストアンサー1
正規表現にしてください
1 - 1つ以上の小文字が含まれています。
[AZ]
2 - 最初と最後の位置を除くすべての場所に存在できる数字が1つ以上含まれています。
.[0-9]。
3 - 最初と最後の場所を除くすべての場所に存在できる特殊文字IDが1つ以上含まれています。
.[^a-z0-9A-Z]。
4 - ユーザーIDに複数の文字が含まれていません。
IDの2文字ごと(しかしIDが数字なので、ユーザー名(フルネームと比較)を意味するようです)((?!$ U)。)
5 - ユーザーIDの反転ではなく、ユーザーIDの反転も含めません。
U=&(whoami | tac) ((?!$U).)
6 - 以前の選択項目または指定されたパスワードに3つ以上の文字が連続して含まれていません。
#4と同じ
7-パスワードには、複数の文字シーケンスを複数回含めてはいけません(例:a39tzb39r)。 8 - 3つ以上の繰り返しまたは連続した数字または文字のシーケンスを含まない(例:ax222rm、ct15mnoRx)。
(.{2,})\1
それからそれらを1つにまとめなさい。
echo -n $ PASS | grep -P '[az]' | grep -P '.[^a-z0-9A- Z].' | grep -vP "((?!$U).)|$ETC"
$ Us拡張はforループなので、理解できるはずです...しかし、前述のように、安全なパスワードの唯一の正しいテストは14文字以上です。 ))