Сложность пароля в строках частичного совпадения Powershell - PullRequest
0 голосов
/ 21 апреля 2020

У меня есть две строки из файла csv:

$Password = "dkjhfd22dnrhfg"
$Username = "NewUser22d"

Я пытаюсь проверить это: не содержит имя учетной записи пользователя или части полного имени пользователя, которые превышают два последовательных символа.

Если совпадают 3 или более символов, я бы хотел добавить их сюда:

if(($password -cmatch '[a-z]') -and ($password -cmatch '[A-Z]') -and ($password -match '\d') -and (($password).length -ge 18))

Вопросы:

  1. Как сопоставить?

  2. Как добавить существующий оператор if.

1 Ответ

0 голосов
/ 21 апреля 2020

Может быть, было бы проще запустить функцию

Поскольку вам действительно не нужно искать (больше) минимальное совпадение пароля / имени пользователя

Function Check-Password{
    param(
        [string]$Username,
        [string]$Password,
        [int]$MatchLength
    )
    for($i = 0; $i -ne ($Username.Length - ($MatchLength - 1)); $i++){
        $Username.Substring($i, $MatchLength) | Where-Object {$Password -like "*$_*"}
    }
}

Check-Password -Username "NewUser22d" -Password "dkjhfd22dnrhfg" -MatchLength 3

Это вернет

22d
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...