vb.net 암호 가 복잡 한 지 검증 하 는 방법
''' <summary>Determines if a password is sufficiently complex.</summary>
''' <param name="pwd">Password to validate</param>
''' <param name="minLength">Minimum number of password characters.</param>
''' <param name="numUpper">Minimum number of uppercase characters.</param>
''' <param name="numLower">Minimum number of lowercase characters.</param>
''' <param name="numNumbers">Minimum number of numeric characters.</param>
''' <param name="numSpecial">Minimum number of special characters.</param>
''' <returns>True if the password is sufficiently complex.</returns>
Function ValidatePassword(ByVal pwd As String, _
Optional ByVal minLength As Integer = 8, _
Optional ByVal numUpper As Integer = 2, _
Optional ByVal numLower As Integer = 2, _
Optional ByVal numNumbers As Integer = 2, _
Optional ByVal numSpecial As Integer = 2) _
As Boolean
' Replace [A-Z] with \p{Lu}, to allow for Unicode uppercase letters.
Dim upper As New System.Text.RegularExpressions.Regex("[A-Z]")
Dim lower As New System.Text.RegularExpressions.Regex("[a-z]")
Dim number As New System.Text.RegularExpressions.Regex("[0-9]")
' Special is "none of the above".
Dim special As New System.Text.RegularExpressions.Regex("[^a-zA-Z0-9]")
' Check the length.
If Len(pwd) < minLength Then Return False
' Check for minimum number of occurrences.
If upper.Matches(pwd).Count < numUpper Then Return False
If lower.Matches(pwd).Count < numLower Then Return False
If number.Matches(pwd).Count < numNumbers Then Return False
If special.Matches(pwd).Count < numSpecial Then Return False
' Passed all checks.
Return True
End Function
Sub TestValidatePassword()
Dim password As String = "Password"
' Demonstrate that "Password" is not complex.
MsgBox(password & " is complex: " & ValidatePassword(password))
password = "Z9f%a>2kQ"
' Demonstrate that "Z9f%a>2kQ" is not complex.
MsgBox(password & " is complex: " & ValidatePassword(password))
End Sub
컴 파일 코드 는 이 암 호 를 포함 하 는 문자열 을 전달 하여 이 방법 을 호출 합 니 다.이 예제 에 서 는 System.Text.RegularExpressions 네 임 스페이스 에 접근 하 는 구성원 이 필요 합 니 다.코드 에 멤버 이름 을 완전히 제한 하지 않 았 다 면 Imports 문 구 를 추가 하 십시오.더 많은 정 보 는 Imports 구문(.NET 네 임 스페이스 와 유형)을 참조 하 십시오.보안 이 네트워크 에서 비밀 번 호 를 옮 기 려 면 안전 한 방법 으로 데 이 터 를 전송 해 야 합 니 다.더 많은 정 보 는 ASP.NET 웹 프로그램의 안전성 을 참조 하 십시오.추가 복잡성 검 사 를 통 해 ValidatePassword 함수 의 정확성 을 개선 할 수 있 습 니 다.사용자 의 이름,사용자 식별 자,응용 프로그램 이 정의 한 사전 에 따라 암호 와 하위 문자열 을 비교 할 수 있 습 니 다.또한 비 교 를 실행 할 때 비슷 해 보 이 는 문 자 를 같은 문자 로 본다.예 를 들 어 알파벳'l'과'e'를 숫자'1'과'3'과 같은 문자 로 본다.대문자 가 하나 밖 에 없다 면 비밀번호 의 첫 번 째 문자 가 아 닌 지 확인 하 십시오.암호 의 마지막 두 글자 가 알파벳 문자 인지 확인 하 세 요.이러한 암 호 는 허용 되 지 않 습 니 다.그 중의 모든 기 호 는 키보드 맨 위의 한 줄 키 를 통 해 입력 됩 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
vb.net 암호 가 복잡 한 지 검증 하 는 방법안전 한 시스템 에서 비밀 번 호 를 사용 하여 사용자 에 게 권한 을 부여 할 수 있 습 니 다.그러나 비밀 번 호 는 권한 이 부여 되 지 않 은 사용자 가 추측 하기 어 려 울 것 이다.공격 자 는 사전 공격 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.