我有一個密碼生成器在我的腳本中生成2個密碼並將它們寫入數據庫。讓我的密碼生成器生成'複雜'的密碼
這些密碼稍後會被檢索並設置爲2個用戶的Windows登錄密碼,這些密碼是在虛擬機中自動創建的。
我有一個問題,就Windows而言,我的密碼並不總是被認爲是複雜的。
我使用下面的函數來生成我的密碼...
Public Function GeneratePassword(ByVal len As Integer) As String
Dim str As String = "1234567890qwertyuio1pa2sd3fg4hj5kl6zx7cv8bn9mQ0WE1RT2YU3IO4PA5SD6FG7HJ8KL9ZX0CVBNM"
Dim N As Integer = str.Length
Dim rnd As New Random((Now.Hour * 3600 + Now.Minute * 60 +
Now.Second) * 1000 + Now.Millisecond)
Dim sb As New StringBuilder
For l As Integer = 1 To len
sb.Append(str.Substring(rnd.Next(0, N), 1))
Next
Return sb.ToString
End Function
然後被稱爲像這樣...
Dim vm_password1 As String = GeneratePassword(10)
我將如何去最好的有關修改這個代碼確保生成的每個密碼包含1個大寫字符,1個小寫字符和一個數字?
任何幫助表示讚賞! :)
拆分您的字符串分爲多個字符串。一個用於大寫字母,另一個用於數字等。然後確保您在輸入密碼時至少得到一個字符串中的一個項目 – 5uperdan
請勿在安全相關事宜中使用Random類(請參閱我的其他[註釋](http://stackoverflow.com/questions/21454915/make-my-password-generator-generate-complex-passwords#comment32390472_21455648))。 – SilverlightFox