Passworteingabe in Konsole mit PasswordChar*

    • VB.NET

    Es gibt 2 Antworten in diesem Thema. Der letzte Beitrag () ist von oli-f.

      Passworteingabe in Konsole mit PasswordChar*

      Mit diesem kleinen Code kann in einer Konsole ein Passwort eingegeben werden, wobei die Zeichen die eingegeben werden als "#" angezeigt werden:

      VB.NET-Quellcode

      1. Private Input As String = ""
      2. Sub Main()
      3. TPass()
      4. If Input = "paradise" Then MsgBox("ACCESS GRANTED") Else MsgBox("ACCESS DENIED")
      5. 'Zur überprüfung:
      6. Console.WriteLine("Ihr eingegebenes Passwort lautet: " & Input.ToString())
      7. End Sub
      8. Sub TPass()
      9. Dim CP As String = "Type password: "
      10. Dim RStr As String = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789"
      11. Dim r As New Random
      12. Dim password As String = ""
      13. Dim CKI As System.ConsoleKeyInfo
      14. Do
      15. Console.Write(CP)
      16. CKI = Console.ReadKey(True)
      17. If CKI.Key = 13 Then
      18. Console.WriteLine()
      19. Exit Do
      20. Else
      21. password = password & CKI.KeyChar
      22. 'Console.Write(RStr.ElementAt(r.Next(0, RStr.Length -1)))
      23. Console.Write("#")
      24. End If
      25. CP &= "#"
      26. Console.Clear()
      27. Loop
      28. Input = password
      29. End Sub


      Ich habe zusätzlich noch einen String RString deklariert, kommentiert man die grüne Codezeile aus und löscht oder kommentiert die Zeile darunter, wird beim eingeben des "Passwortes" ein zufälliger Buchstabe/Zahl angezeigt. Die Zeile "Console.Write("#")" kann abgeändert werden indem man einfach ein anderes Zeichen einträgt als "#", um das Passwort beispielsweise mit "*" darzustellen.
      Ich hoffe Ich habe einigen geholfen ;)
      PS: Das passwort wäre hier "paradise"

      %P% :thumbup:
      Hello World

      Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von „%P%“ ()

      so hab den code so verändert, dass nur buchstaben, zahlen angenommen + zurück....

      VB.NET-Quellcode

      1. Sub Main()
      2. If ConsolenPass("Type password: ", "paradise") Then Console.WriteLine("ACCESS GRANTED") Else Console.WriteLine("ACCESS DENIED")
      3. Console.Read()
      4. End Sub
      5. Function ConsolenPass(ByVal msg As String, ByVal passwort As String) As String
      6. Dim RStr As String = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789"
      7. Dim password As String = ""
      8. Dim CKI As System.ConsoleKeyInfo
      9. Do
      10. Console.Write(msg)
      11. For i = 0 To password.Length - 1
      12. Console.Write("*")
      13. Next
      14. CKI = Console.ReadKey(False)
      15. If CKI.Key = ConsoleKey.Enter Then
      16. Console.WriteLine()
      17. Exit Do
      18. ElseIf CKI.Key = ConsoleKey.Backspace Then
      19. If password.Length > 1 Then
      20. password = password.Remove(password.Length - 2, 1)
      21. Else
      22. password = ""
      23. End If
      24. ElseIf RStr.Contains(CKI.KeyChar) Then
      25. password += CKI.KeyChar
      26. End If
      27. Console.Clear()
      28. Loop
      29. If password = passwort Then
      30. Return True
      31. Else
      32. Return False
      33. End If
      34. End Function

      Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „oli-f“ ()