一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術|正則表達式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務器之家 - 編程語言 - vb.net - vb.net驗證密碼是否復雜的方法

vb.net驗證密碼是否復雜的方法

2021-10-06 20:11VB.NET教程網 vb.net

此方法將檢查某些強密碼特性,并使用有關檢查密碼失敗的信息更新字符串參數。

可在安全的系統中使用密碼來向用戶授權。但是,密碼必須難于被未授權用戶猜測出來。攻擊者可以使用一種“字典攻擊”程序,該程序將遍歷一本字典(或不同語言的多本字典)中的所有單詞,并測試是否有任何單詞就是用戶的密碼。諸如“Yankees”或“Mustang”等弱密碼可被很快猜測出來。諸如“?You'L1N3vaFiNdMeyeP@sSWerd!”等強密碼被猜測出來的可能性要小很多。密碼保護系統應確保用戶選擇強密碼。

強密碼很復雜(包含大寫、小寫、數字和特殊字符的組合),并且不是單詞。此示例演示如何驗證復雜性。

示例 
 

復制代碼 代碼如下:

''' <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 Web 應用程序安全性。

通過添加額外的復雜性檢查,您可以改進 ValidatePassword 函數的準確性:

依據用戶的名稱、用戶標識符和應用程序定義的字典來比較密碼及其子字符串。此外,在執行比較時,將看起來類似的字符視為相同字符。例如,將字母“l”和“e”視為與數字“1”和“3”相同的字符。

如果只有一個大寫字符,請確保它不是密碼的第一個字符。

確保密碼的最后兩個字符是字母字符。

不允許這樣的密碼:其中的所有符號都是通過鍵盤最上面的一排鍵輸入的。

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 99久久免费视频 | 男女真实无遮挡xx00动态图软件 | 日韩欧美一区二区三区中文精品 | 日日操视频| 狠狠干2017 | 成人免费片 | 免费日本在线 | 污漫日本E同人 | 亚洲AV福利天堂一区二区三 | 99小视频| 亚洲剧情在线观看 | 韩国甜性涩爱在线播放 | 青草草在线观看 | 久久不射电影网 | 耽美肉文高h | 国内精品视频免费观看 | 久久精品一区二区免费看 | 国内亚州视频在线观看 | 男女xxoo做爰猛烈动态一 | 午夜影院网页 | 大陆国产精品视频 | 亚洲a区视频 | 無码一区中文字幕少妇熟女网站 | 999任你躁在线精品免费不卡 | 色淫影院| 欧美日韩高清完整版在线观看免费 | katsuniav在线播放 | 欧产日产国产精品专区 | 俄罗斯大逼 | 极品美女穴 | 久久精品无码一区二区日韩av | 久久se视频精品视频在线 | 国产精品成人扳一级aa毛片 | 免费日本在线视频 | 久久综合给会久久狠狠狠 | 亚洲人成在线播放 | 国产精品久久久久久吹潮 | 福利片中文| 黄动漫车车好快的车车双女主 | 四虎免费入口 | 国产精品特黄毛片 |