다음 정규식을 사용하여 암호 강도를 검증하고 있습니다.긍정적 인 look ahead 정규식에 문자의 화이트리스트를 추가하는 방법
^(?=.*[a-z]{1,})(?=.*[A-Z]{1,})(?=.*[0-9]{1,})(?=.*[@\#\$%\^&\+=!\?\*]{1,}).{8,12}$
8-12 문자, 적어도 1 소문자, 1 대문자, 1 개 번호, 승인 된 목록에서 1 개 특수 문자. (나는 앞으로의 모습을 {1,4}로 설정하고 올바르게 작동시킬 수는 없다는 것을 알고 있지만, 곧 해결할 수 있기를 바란다.)
표현식 조금 장황하게 보이지만 내 사용자가 자신의 암호 규칙을 설정할 수 있습니다. 정규 표현식에서 상호 교환 가능한 부분을 만드는 가장 좋은 방법 인 것 같습니다. 나는 모든 문자가 일치하지 말아야 라인을 설정하지 않을 경우 모든 문자 집합
[A-Z]|[a-z]|[0-9]|[@\#\$%\^&\+=!\?\*]
에 있어야 추가 할 이에
.
불행히도, 이것을 표현하는 올바른 방법을 찾지 못했습니다. 어떤 도움이라도 대단히 감사합니다.
토론과 관련이 있다면 .NET 구현을 사용하고 있습니다.
왜 사용자가 추가 문자를 사용하지 못하게합니까? 이렇게하면 암호 강도가 줄어 듭니다. – zzzzBov
일반적으로 저는 여러분에게 동의합니다. 그러나이 경우에는 단순히 비즈니스 요구 사항을 충족시키기 위해 노력하고 있습니다. –