Visual Basic Forum

Visual Basic Forum
für VB6 und VB.NET Programmierer
 
RegistrierenRegistrieren  LoginLogin

Neues Thema eröffnen   Neue Antwort erstellen    Visual Basic Forum Foren-Übersicht -> [VB6] Tutorials
Autor
Nachricht
ZiG
Überflieger
Überflieger

Anmeldedatum: 16.04.2008
Beiträge: 421

Sicherere Hash-Verschlüsselung
Verfasst am: 15.06.2009, 12:01

Thema: Sicherere Hash-Verschlüsselung
Autor: Rausch


Wenn ein passwort oder ähnliches in eurem programm speichern wollt, ohne das man es einfach auslesen kann, nehmt ihr vermutlich einen MD5-hash.
nur leider kann man dann einfache kurtze passwörter auch sehr schnell bruteforcen, und längere kann man sich sich schlecht merken.
wenn man sich das ganze aber mal genauer überlegt, erkennt man, dass man ja den aus dem hash, nochmal einen hash ersetllen könnte, da er ja auch nur ein string ist.

("ZiG")
Die Annahme ist zwar sehr stark verbreitet, ist aber nicht richtig.
Man muß bei einem doppelt oder salted Hash nicht versuchen die 32 Zeichen des Ausgangshash rauszubekommen, also cracken.

Sieh dir Programme wie PasswordsPro oder MDCrack an. Die können sehr wohl mit salted Hashes umgehen.

Ist auch ganz einfach.
Die Programme wiederholen einfach den Vorgang des hashens.
Hab ich auch schon paarmal für coding hackits programmiert.

Vorgang:
Plain generieren oder einlesen
plain umwandeln. (Doppelt, salted oder was ihr wollt)
Neuen Hash mit dem original vergleichen. Falls der übereinstimmt hat man ebenso den plain rausbekommen wie wenn man den einfachen MD5 Hash gecrackt hätte.
Natürlich dauert das länger als bei einem normalen MD5 Hash.


vorhin hab ich das ganze 20000 mal gemacht, es dauerte nur etwa 7 sec.

hier habt ihr mal einen beispiel code:
clsmd5 ist die md5-klasse.
Code:
Private Function multimd5(times As Long, ByVal text As String) As String<br />Dim md5 As New clsMD5<br />Dim i As Integer<br />For i = 1 To times<br />text = md5.DigestStrToHexStr(text)<br />Next<br />multimd5 = text<br />End Function


benuzen tut ihr das dann so:
hash erstellen:
Code:
multimd5(20, "password")


überprüfen:
Code:
If mmultimd5(20, "password") =  "cac43aed3585d7720c148ebeb9aa0076" Then MsgBox "Passwort Richtig!"


weiter so jetzt wollen wir aber auch noch andere verschlüsselungen benuzen
ich beschreibe einmal den weiteren verlauf mit unserem salted hash:
-sha1
-rc4
-sha256
-rc4
-base 64

so ab jetzt kommt alles in eine function GenerateCryptedHash:
als erstes nochmal unseren md5 code und ein paar deklarationen:
Code:
Public Function GenerateCryptedHash(ByVal toCrypt As String) As String<br />Dim MD5 As New clsMD5<br />Dim SHA1 As New clsSHA<br />Dim SHA256 As New clsSHA256<br />Dim i As Integer<br />For i = 1 To 20<br />toCrypt = MD5.DigestStrToHexStr(toCrypt)<br />Next

so machen ich mache einfach mal weiter, sollte ja nicht so schwer sein das zu verstehen:
Code:
For i = 1 To 20<br />toCrypt = SHA1.SHA1(toCrypt)<br />Next<br /><br />toCrypt = RC4(toCrypt, """%&s=)!§§/³2""ö#'*ü<|!§§/|>+=")<br /><br />For i = 1 To 20<br />toCrypt = SHA256.SHA256(toCrypt)<br />Next<br /><br />toCrypt = RC4(toCrypt, "!§§/€??)+*#>>|<<%&§7§ad""""HJI")<br /><br />toCrypt = Base64EncodeUnicode2(toCrypt)<br /><br />GenerateCryptedHash = toCrypt


zum überprüfen machen wir das wie mit einem normalen hash:
Code:
If GenerateCryptedHash(<passwort>) = <hash> Then<br />MsgBox "Passwort Richtig!"<br />Else<br />MsgBox "Passwort Falsch!"<br />End If

und das wars dann auch schon
so hier noch die dl links
Verschlüsselung
BeispielProjekt

mfg rausch
_________________
 
Neues Thema eröffnen   Neue Antwort erstellen    Visual Basic Forum Foren-Übersicht -> [VB6] Tutorials

Tags: hash erstellen, md5 hash, passwort, sha256, password

 
 Verwandte Themen   Aufrufe   Letzter Beitrag 
Keine neuen Beiträge Passwort Generator 1526 08.07.2010, 00:32
Keine neuen Beiträge Passwort Schutz? 879 25.10.2007, 06:31
Keine neuen Beiträge Das passwort an die E-Mail von mir senden? 562 17.10.2007, 21:18
Keine neuen Beiträge Passwort Generator by sollniss 1270 28.11.2008, 17:03
Keine neuen Beiträge TUT zur Passwort abfrage 1013 10.08.2007, 15:06
 




[ Time: 0.1596s ][ Queries: 81 (0.0416s) ][ GZIP on - Debug on ]