Top-Themen

Aktuelle Themen (A bis Z)

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit

VB Passwort im Programm oder sicher speichern

Mitglied: Alexss95

Alexss95 (Level 1) - Jetzt verbinden

01.08.2009, aktualisiert 18.10.2012, 9587 Aufrufe, 6 Kommentare

Hi, an Alle!

Ich bin in VisualBasic noch nicht so ein "Profi" und benötige deswegen eure Hilfe:

Ich habe einen Anmelde-Dialog mit Benutzernamen und Passwort.
Passend dazu eine Einstellungs-Seite, wo man den Benutzernamen
und ein neues Passwort eintragen kann.
Wenn der Benutzer nun auf speichern klickt wird das ganze in den My.Settings gespeichert.
Doch jetzt habe ich herausgefunden, dass die Daten "offen" in meinen Anwendungs-Dateien drin stehen.

Wie kann ich nun z.B. das Passwort "sicher" im Programm speichern?

Ich hoffe mir kann jem. helfen!

Alexss95
Mitglied: 76109
01.08.2009 um 21:29 Uhr
Hallo Alexss95!

Die einfachste Möglichkeit währe z.B. das hier:
01.
    Dim i As Integer, Pass As String, doPass As String, rePass As String 
02.
 
03.
    Pass = "ABCDEFGH" 
04.
     
05.
    For i = 1 To Len(Pass) 
06.
        doPass = doPass & Chr(Asc(Mid(Pass, i, 1)) * 2)  '= "‚„†ˆŠŒŽ" 
07.
    Next 
08.
     
09.
    For i = 1 To Len(doPass) 
10.
        rePass = rePass & Chr(Asc(Mid(doPass, i, 1)) / 2) '= "ABCDEFGH" 
11.
    Next
Etwas aufwendiger ginge es mit Rotier-Funktionen.

Gruß Dieter
Bitte warten ..
Mitglied: bastla
01.08.2009, aktualisiert 18.10.2012
Hallo Alexxs95 und didi1954!

An sich gäbe es "Capicom.dll" zum Ermitteln von Passwort-Hashes - pacobay hat hier mal einen Ansatz in VBS gezeigt ...

... allerdings sollte das .NET-Framework auch andere Möglichkeiten bieten (zumindest wird für Windows 7 ein "Umstieg" empfohlen - siehe zB Data Security Component Cut from Windows 7 Dev Tools).

Grüße
bastla
Bitte warten ..
Mitglied: Alexss95
02.08.2009 um 13:53 Uhr
wo soll ich den code einfügen? Könntest du mir das nochmal erklären?
Bitte warten ..
Mitglied: bastla
02.08.2009 um 18:12 Uhr
Hallo Alexxs95!

Eigentlich brauchst Du ja nur das Ermitteln des Hash-Wertes - eine leicht modifizierte Function dafür könnte so aussehen:
01.
Function GetHash(ByVal strText) 
02.
Const CAPICOM_HASH_ALGORITHM_SHA1 = 0 
03.
Dim objHashedData = CreateObject("CAPICOM.HashedData") 
04.
objHashedData.Algorithm = CAPICOM_HASH_ALGORITHM_SHA1 
05.
objHashedData.Hash(strText) 
06.
GetHash = objHashedData.Value 
07.
End Function
Wenn Du für Dein Passwort den Hashwert ermittelt hast - als Demo:
01.
MsgBox GetHash("DasPW")
liefert als Ergebnis
82701DE29C7E9BF57185DE360B9CB0F1068B6CED
kannst Du anstelle des Passworts im Klartext den Hashwert im Code verwenden oder speichern.

Zum Überprüfen eines eingegebenen Passwortes (strPW) genügt dann:
If GetHash(strPW) = "82701DE29C7E9BF57185DE360B9CB0F1068B6CED" Then MsgBox("Passwort ist richtig")
Ob der Hashwert (wie in diesem Beispiel) fest verdrahtet in Deinem Code steht oder von einem Speicherort eingelesen wird, ist Deine Entscheidung.

Besonders sicher ist das aber nicht, da bei Kenntnis der Verschlüsselungsmethode einfach der Hashwert durch einen "passenden" Wert ersetzt werden kann (was etwas leichter ist, wenn der Wert in einer Datei oder in der Registry steht, als wenn er als Konstante im Code verwendet wurde), woraufhin Dein Programm dann das zugehörige PW akzeptieren würde ...
Da ich mich bisher kaum näher mit Kryptographie bzw deren Anwendung beschäftigt habe, kann ich nur noch einen Link "in Richtung" .NET anbieten: Extending .NET Cryptography with CAPICOM and P/Invoke ...

Grüße
bastla
Bitte warten ..
Mitglied: 76109
03.08.2009 um 00:25 Uhr
Hallo bastla und Alexss95!

@bastla Dein Beispiel funktioniert bei mir leider nicht

Mit CreateObject("CAPICOM.HashedData") krieg ich ne Fehlermeldung (does not Contain hashed value).

Die Registrierung mit <regsvr32 capicom.dll> wurde bestätigt. Falsche Version ??? 2.1.0.2 - 04.2007

Noch ne Lösung mit zusätzlichem Schlüssel:

01.
Const SecretKey = "A#0x?\$dE<"          'Geheimer Schlüssel nach belieben anpassen 
02.
 
03.
Const EncryptionAlgorithmus_RC2 = 0     'Use RSA RC2 Encryption. 
04.
Const EncryptionAlgorithmus_RC4 = 1     'Use RSA RC4 Encryption. 
05.
Const EncryptionAlgorithmus_DES = 2     'Use DES Encryption. 
06.
Const EncryptionAlgorithmus_3DES = 3    'Use Triple DES Encryption. 
07.
     
08.
Const EncryptionKeyLen_Max = 0          'Use Maximum Keys 
09.
Const EncryptionKeyLen_40Bits = 1       'Use  40-Bit Keys. 
10.
Const EncryptionKeyLen_56Bits = 2       'Use  56-Bit Keys 
11.
Const EncryptionKeyLen_128Bits = 3      'Use 128-Bit Keys 
12.
 
13.
Function SetPassword(ByRef Text) As String 
14.
    Dim EnCryption As Object 
15.
     
16.
    Set EnCryption = CreateObject("CAPICOM.EncryptedData") 
17.
     
18.
    With EnCryption 
19.
        .Content = Text 
20.
        .SetSecret SecretKey 
21.
        .Algorithm.Name = EncryptionAlgorithmus_3DES 
22.
        .Algorithm.KeyLength = EncryptionKeyLen_Max 
23.
         SetPassword = Replace(.Encrypt(), vbCrLf, "") 
24.
    End With 
25.
End Function 
26.
 
27.
Function GetPassword(ByRef Text) As String 
28.
    Dim DeCryption As Object 
29.
     
30.
    Set DeCryption = CreateObject("CAPICOM.EncryptedData") 
31.
     
32.
    With DeCryption 
33.
        .SetSecret SecretKey 
34.
        .Algorithm.Name = EncryptionAlgorithmus_3DES 
35.
        .Decrypt (Text) 
36.
         GetPassword = .Content 
37.
    End With 
38.
End Function 
39.
 
40.
Sub TestPassword() 
41.
    Dim Encrypt As String, Decrypt As String 
42.
 
43.
    Encrypt = SetPassword("Mein Password")  'If Encrypt <> "" Then ... 
44.
 
45.
    Decrypt = GetPassword(Encrypt)          'If Decrypt <> "" Then ... 
46.
    
47.
   'Encrypt = "MFwGCSsGAQQBgjdYA6BPME0GCisGAQQBgjdYAwGgPzA9AgMCAAECAmgBAgIAgAQA" & _ 
48.
   '          "BBD5qs4AJfUeQJkuKVBNiNpaBBpG0qP6p1gvESBTrK1hee2XTvA2elacN63mPA==" 
49.
     
50.
   'Decrypt = "Mein Password" 
51.
End Sub
Quelle: http://www.aspheute.com/artikel/20020115.htm

Gruß Dieter
Bitte warten ..
Mitglied: Alexss95
03.08.2009 um 09:37 Uhr
Danke! Ich probiere es mal aus!
Bitte warten ..
Ähnliche Inhalte
Sicherheitsgrundlagen

Passwörter bei Diensten speichern oder immer neu eigeben? Was ist sicherer?

Frage von deckard2019Sicherheitsgrundlagen1 Kommentar

Hallo. Ich habe mal eine allgemeine Frage zur Sicherheit im Internet (Firefox). Ist es eurer Meinung nach sicherer, z.B. ...

Linux Desktop

Passwort in conf speichern?

gelöst Frage von atomiqueLinux Desktop4 Kommentare

Guten Tag zusammen! ich hab nur eine kleine Frage. Ich richte gerade ein mySQLBackup Skript ein (Debian 7, mySQL ...

PHP

Passwort verschlüsselt speichern

gelöst Frage von tobmesPHP3 Kommentare

Hi Experten, ich bastle gerade wieder ein bischen mit PHP rum. Ich habe mir mit PHP ein Login-Script gebastelt. ...

VB for Applications

Meldung Speicher voll im VB-Script

gelöst Frage von alexander01VB for Applications16 Kommentare

Hallo, ich habe ein Problem mit einem VB-Script. Es prüft in ca. 300 Excel-Tabellen, ob in der jeweils letzten ...

Neue Wissensbeiträge
Vmware
VMware Update für den ESXi 5.5 verfügbar
Information von sabines vor 2 StundenVmware

Nach dem ganzen Hickhack um Update mit Microcode Anpassungen und Rückzug, gibt es nun für den ESXi 5.5 ein ...

CPU, RAM, Mainboards

Meltdown und Spectre: Intel zieht Microcode-Updates für Prozessoren zurück

Information von keine-ahnung vor 6 StundenCPU, RAM, Mainboards4 Kommentare

Moin, extrem lutztig. Nur gut, dass ich noch nicht beim Probanden-Bingo mitgemacht habe :-) LG, Thomas

Router & Routing
PfSense als Addon auf QNAP
Information von magicteddy vor 20 StundenRouter & Routing3 Kommentare

Moin, für Spielereien eine ganz nette Idee aber ich fürchte das soetwas auch als echte Firewall genutzt wird: In ...

Datenschutz

Teamviewer kommt für IoT-Geräte wie den Raspberry Pi

Information von magicteddy vor 1 TagDatenschutz1 Kommentar

Moin, jetzt werden IoT Geräte endgültig zur Wanze? Anscheinend kann man auf einem Dashboard seine Geräte visualisieren Ich stelle ...

Heiß diskutierte Inhalte
Netzwerkmanagement
Preis für Wartungsvertrag ok?
gelöst Frage von a-za-zNetzwerkmanagement26 Kommentare

Hallo! Mal ne Frage, weil ich mich mit dem akzeptablen Preis für einen Reaktionszeitvertrag nicht auskenne. Meine Firma hat ...

Windows Server
TEMP-Profile
gelöst Frage von Forseti2003Windows Server21 Kommentare

Guten Morgen, wer kennt sie nicht, die lieben Temporären Benutzerprofile, vorallem immer dann, wenn man sie am wenigsten braucht. ...

Multimedia & Zubehör
Welches Tablet für die Verkäufer?
Frage von Hendrik2586Multimedia & Zubehör15 Kommentare

Guten Morgen meine Lieben, vielleicht könnt ihr mir ja helfen. Es geht um unsere Außendienstmitarbeiter /Verkäufer. Sie sollen demnächst ...

Windows Netzwerk
Ist ein Portforwarding auf einen PC ohne lauschendes Programm ein (großes) Sicherheitsproblem?
Frage von PluwimWindows Netzwerk13 Kommentare

Hallo zusammen, zur Fernwartung eines Rechners an einem anderen Ort nutze ich VNC. Da dieser Rechner einfach nur eine ...