Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht Das deutsche QBasic- und FreeBASIC-Forum
Für euch erreichbar unter qb-forum.de, fb-forum.de und freebasic-forum.de!
 
FAQFAQ   SuchenSuchen   MitgliederlisteMitgliederliste   BenutzergruppenBenutzergruppen  RegistrierenRegistrieren
ProfilProfil   Einloggen, um private Nachrichten zu lesenEinloggen, um private Nachrichten zu lesen   LoginLogin
Zur Begleitseite des Forums / Chat / Impressum
Aktueller Forenpartner:

md5 Hash aus string bekommen?!

 
Neues Thema eröffnen   Neue Antwort erstellen    Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht -> Profi-Forum
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
DOSe
aka EXP-S


Anmeldungsdatum: 05.07.2005
Beiträge: 96

BeitragVerfasst am: 29.12.2006, 19:27    Titel: md5 Hash aus string bekommen?! Antworten mit Zitat

So, ich suche glaube ich nun 4 Stunden am stück nach ne Funktion womit ich aus nem String z.B. "hj12jk" den md5 hash raus bekomme...

gibts da irgendwo schon nen SRC Beispiel?! oder ggf in FB eine Funktion selbst?!

oder kennt wer ne API von Windows die sowas ausspuckt?!

unter C / C++ findet man ne Menge zu dem Thema, aber leider kann ich C++ nicht wirklich gut genug um das Portieren zu können...

Gruß DOSe.
_________________
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Sebastian
Administrator


Anmeldungsdatum: 10.09.2004
Beiträge: 5969
Wohnort: Deutschland

BeitragVerfasst am: 29.12.2006, 20:26    Titel: Antworten mit Zitat

Hallo!

=> http://www.freewebs.com/weekendcode/Console.htm (nach unten scrollen, "LOCKUP")

Ansonsten gab es auch einen MD5 Code von Plantasy (u.a. Z!re ist dabei, wenn ich mich recht entsinne), der jedoch nur mit FB 0.12/0.13 compilierbar war. Weiterhin hat sich Lutz Ifer mal an dem Algo versucht und seinen Zwischenstand hier im Forum gepostet (=>Forensuche). lächeln

Viele Grüße!
Sebastian
_________________

Der Markt regelt das! | Opas Leistung muss sich wieder lohnen - für 6 bis 10 Generationen!
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
DOSe
aka EXP-S


Anmeldungsdatum: 05.07.2005
Beiträge: 96

BeitragVerfasst am: 29.12.2006, 20:41    Titel: Antworten mit Zitat

Alles klar, besten Dank, das sieht ja schonmal gut aus, sehr gut sogar lächeln damit kann ich sicher was anfangen....
_________________
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
max06



Anmeldungsdatum: 05.12.2004
Beiträge: 390
Wohnort: Augsburg

BeitragVerfasst am: 30.12.2006, 17:31    Titel: Antworten mit Zitat

Du suchst so etwas wie in php
Code:

MD5("text")

?

Ich weiß, dass in mysql.dll (siehe inc/mysql/mysql.bi) eine Funktion namens md5 existiert, die genau das erledigt lächeln

Werds gleich mal raussuchen


Grüße
Flo

EDIT: Sry, habe mich anscheinend geirrt...

EDIT 2: Kann mit VB überhaupt nix anfangen, das sollte aber dein Prob lösen können:
Code:
Private Declare Function CryptAcquireContext Lib "advapi32.dll" _
  Alias "CryptAcquireContextA" ( _
  ByRef phProv As Long, _
  ByVal pszContainer As String, _
  ByVal pszProvider As String, _
  ByVal dwProvType As Long, _
  ByVal dwFlags As Long) As Long

Private Declare Function CryptReleaseContext Lib "advapi32.dll" ( _
  ByVal hProv As Long, _
  ByVal dwFlags As Long) As Long

Private Declare Function CryptCreateHash Lib "advapi32.dll" ( _
  ByVal hProv As Long, _
  ByVal Algid As Long, _
  ByVal hKey As Long, _
  ByVal dwFlags As Long, _
  ByRef phHash As Long) As Long

Private Declare Function CryptDestroyHash Lib "advapi32.dll" ( _
  ByVal hHash As Long) As Long

Private Declare Function CryptHashData Lib "advapi32.dll" ( _
  ByVal hHash As Long, _
  pbData As Byte, _
  ByVal dwDataLen As Long, _
  ByVal dwFlags As Long) As Long

Private Declare Function CryptGetHashParam Lib "advapi32.dll" ( _
  ByVal hHash As Long, _
  ByVal dwParam As Long, _
  pbData As Any, _
  pdwDataLen As Long, _
  ByVal dwFlags As Long) As Long

Private Const PROV_RSA_FULL = 1

Private Const CRYPT_NEWKEYSET = &H8

Private Const ALG_CLASS_HASH = 32768

Private Const ALG_TYPE_ANY = 0

Private Const ALG_SID_MD2 = 1
Private Const ALG_SID_MD4 = 2
Private Const ALG_SID_MD5 = 3
Private Const ALG_SID_SHA1 = 4

Enum HashAlgorithm
  MD2 = ALG_CLASS_HASH Or ALG_TYPE_ANY Or ALG_SID_MD2
  MD4 = ALG_CLASS_HASH Or ALG_TYPE_ANY Or ALG_SID_MD4
  MD5 = ALG_CLASS_HASH Or ALG_TYPE_ANY Or ALG_SID_MD5
  SHA1 = ALG_CLASS_HASH Or ALG_TYPE_ANY Or ALG_SID_SHA1
End Enum

Private Const HP_HASHVAL = 2
Private Const HP_HASHSIZE = 4

Public Function HashFile( _
  ByVal Filename As String, _
  Optional ByVal Algorithm As HashAlgorithm = MD5) As String
Dim hCtx As Long
Dim hHash As Long
Dim lFile As Long
Dim lRes As Long
Dim lLen As Long
Dim lIdx As Long
Dim abHash() As Byte

  ' Check if the file exists (not the best method BTW!)
  If Len(Dir$(Filename)) = 0 Then Err.Raise 53
 
  ' Get default provider context handle
  lRes = CryptAcquireContext(hCtx, vbNullString, _
          vbNullString, PROV_RSA_FULL, 0)

  If lRes = 0 And Err.LastDllError = &H80090016 Then
 
     ' There's no default keyset container!!!
     ' Get the provider context and create
     ' a default keyset container
     lRes = CryptAcquireContext(hCtx, vbNullString, _
              vbNullString, PROV_RSA_FULL, CRYPT_NEWKEYSET)
  End If
 
  If lRes <> 0 Then

     ' Create the hash
     lRes = CryptCreateHash(hCtx, Algorithm, 0, 0, hHash)

     If lRes <> 0 Then

        ' Get a file handle
        lFile = FreeFile
       
        ' Open the file
        Open Filename For Binary As lFile
       
        If Err.Number = 0 Then
       
           Const BLOCK_SIZE As Long = 32 * 1024& ' 32K
           ReDim abBlock(1 To BLOCK_SIZE) As Byte
           Dim lCount As Long
           Dim lBlocks As Long
           Dim lLastBlock As Long
           
           ' Calculate how many full blocks
           ' the file contains
           lBlocks = LOF(lFile) \ BLOCK_SIZE
           
           ' Calculate the remaining data length
           lLastBlock = LOF(lFile) - lBlocks * BLOCK_SIZE
           
           ' Hash the blocks
           For lCount = 1 To lBlocks
           
              Get lFile, , abBlock
       
              ' Add the chunk to the hash
              lRes = CryptHashData(hHash, abBlock(1), BLOCK_SIZE, 0)
           
              ' Stop the loop if CryptHashData fails
              If lRes = 0 Then Exit For
             
           Next

           ' Is there more data?
           If lLastBlock > 0 And lRes <> 0 Then
           
              ' Get the last block
              ReDim abBlock(1 To lLastBlock) As Byte
              Get lFile, , abBlock
             
              ' Hash the last block
              lRes = CryptHashData(hHash, abBlock(1), lLastBlock, 0)
             
           End If
           
           ' Close the file
           Close lFile
       
        End If

        If lRes <> 0 Then
           
           ' Get the hash lenght
           lRes = CryptGetHashParam(hHash, HP_HASHSIZE, lLen, 4, 0)

           If lRes <> 0 Then

               ' Initialize the buffer
               ReDim abHash(0 To lLen - 1)

               ' Get the hash value
               lRes = CryptGetHashParam(hHash, HP_HASHVAL, abHash(0), lLen, 0)

               If lRes <> 0 Then

                   ' Convert value to hex string
                   For lIdx = 0 To UBound(abHash)
                       HashFile = HashFile & _
                                    Right$("0" & Hex$(abHash(lIdx)), 2)
                   Next

               End If

           End If

        End If

        ' Release the hash handle
        CryptDestroyHash hHash

     End If
     
  End If

  ' Release the provider context
  CryptReleaseContext hCtx, 0

  ' Raise an error if lRes = 0
  If lRes = 0 Then Err.Raise Err.LastDllError

End Function
Quelle: http://community.applejuicenet.de/topic3608-0.html
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
FreakBasic



Anmeldungsdatum: 19.11.2006
Beiträge: 49

BeitragVerfasst am: 01.01.2007, 04:16    Titel: RE: DOSe Antworten mit Zitat

Zitat:

ich suche glaube ich nun 4 Stunden am stück nach ne Funktion womit ich aus nem String z.B. "hj12jk" den md5 hash raus bekomme...


Suche ? Aber wohl am falschen Ort. grinsen . grinsen . grinsen

http://www.freebasic.net/forum/viewtopic.php?t=5288
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Beiträge der letzten Zeit anzeigen:   
Neues Thema eröffnen   Neue Antwort erstellen    Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht -> Profi-Forum Alle Zeiten sind GMT + 1 Stunde
Seite 1 von 1

 
Gehe zu:  
Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.

 Impressum :: Datenschutz