Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1928to1932
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

password_hash() als vba

password_hash() als vba
03.05.2023 17:33:05
Haustein

Hallo Gemeinschaft,

habt ihr vielleicht ein vba script auf Lager, welches mir ein password_hash() erstellen kann a la

password_hash()-Hashwert von test:
$2y$10$5x1uI.WC84gDQmr3b6TorOyl/0bjV22dTCE7YgTbyL75h8h7E4J0S

16
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: password_hash() als vba
04.05.2023 08:02:22
Haustein
leider der falsche hash


AW: password_hash() als vba
04.05.2023 08:50:30
Yal
Leider eine ungenaue Frage.


AW: password_hash() als vba
04.05.2023 08:54:48
Haustein
ich brauche einen hash a la
https://www.php-einfach.de/diverses/md5-sha1-hash-generator/?submit=1

crypt()-Hashwert von test:
$1$ZaUDdR3J$9OCY9rzY4zCpqn6GfyXbt1

password_hash()-Hashwert von test:
$2y$10$ieGB4gNyMMRSw09uXycSQuFJcMFJm9ylC8XuTxpU2Ozdy0a//KYzG


Anzeige
AW: password_hash() als vba
04.05.2023 09:21:15
Yal
Hallo,

schon viel besser. Aber Du hast sicher den Link selber geöffnet und durchgelesen, und gesehen, dass dort nicht die vollständige Antwort steht. Man muss auf die weiterführende Links eingehen und lesen. Und sehen, dass es immer noch nicht die Antwort ist, und daher auf die weiterführende Links eingehen.

Anders gesagt, diese Leserei kann ich für dich nicht übernehmen.
Daher zu deiner ursprüngliche Frage: nein, ich habe keine Skript parat.

VG
Yal


AW: password_hash() als vba
04.05.2023 08:59:09
Yal
und eine Rückmeldung, die keine weitere Information bringt.

Der falsche Hash? und nun? sollen wir einen anderen vorschlagen und schauen, ob wir zufälligerweise die Anforderung getroffen haben?

Du schienst eine klare Vorstellung zu haben, was rauskommen soll. Dann teile uns diese mit.

VG
Yal


Anzeige
AW: password_hash() als vba
04.05.2023 08:02:50
Haustein
leider der falsche hash


AW: password_hash() als vba
04.05.2023 08:54:59
Der Steuerfuzzi
Sorry, aber was soll denn diese Antwort? Findest Du es nicht etwas unverschämt, so eine lapidare Antwort zu posten?

Dann schreib doch welchen Hash Du haben willst. Deine Frage lautete:
habt ihr vielleicht ein vba script auf Lager, welches mir ein password_hash() erstellen kann a la
Du schreibst "ein passwort_hash", das kann alles sein. Und Dein Beispiel wird mit "a la" angeführt. Das bedeutet, dass es so aussehen könnte und nicht muss ...

So kannst du selber nach einer Lösung suchen. Ich werde nicht mehr helfen.

Gruß
Michael


Anzeige
AW: password_hash() als vba
04.05.2023 10:58:29
Wolfgang
Hallo Haustein,
leider wirst Du hier wenig HIlfe bekommen ....
Warum möchtest Du IMMER "a la" haben?
Diese Internetseite erstellt nach dem Zufälligkeitssystem einen Hashwert und der ist jedes mal anders!
Geht es Dir um die Erstellung eines Hash-Wertes mit Excel oder ???
Es ist kein Wunder, dass sich hier die Experten nicht mehr melden.

Genaue Beschreibung, was man möchte (am besten mit BspDatei), dann geht das!
(Auch ich musste das Lernen)
Wolfgang


Anzeige
AW: password_hash() als vba
04.05.2023 11:13:49
Haustein
es geht eher darum, wie der hash wert erstellt wird - und in meiner Datenbank kann er nur mit den hashWerten umgehen, wie im Bsp - letzter Wert


AW: password_hash() als vba
04.05.2023 11:48:16
Josef Schindler
Dieser Code haut super hin:

Option Explicit

Private lngTrack As Long
Private arrLongConversion(4) As Long
Private arrSplit64(63) As Byte

Private Const OFFSET_4 = 4294967296#
Private Const MAXINT_4 = 2147483647

Private Const S11 = 7
Private Const S12 = 12
Private Const S13 = 17
Private Const S14 = 22
Private Const S21 = 5
Private Const S22 = 9
Private Const S23 = 14
Private Const S24 = 20
Private Const S31 = 4
Private Const S32 = 11
Private Const S33 = 16
Private Const S34 = 23
Private Const S41 = 6
Private Const S42 = 10
Private Const S43 = 15
Private Const S44 = 21

Private Function MD5Round(strRound As String, a As Long, b As Long, _
                          C As Long, d As Long, x As Long, S As Long, _
                          ac As Long) As Long
    Select Case strRound
      Case Is = "FF"
        a = MD5LongAdd4(a, (b And C) Or (Not (b) And d), x, ac)
        a = MD5Rotate(a, S)
        a = MD5LongAdd(a, b)
      Case Is = "GG"
        a = MD5LongAdd4(a, (b And d) Or (C And Not (d)), x, ac)
        a = MD5Rotate(a, S)
        a = MD5LongAdd(a, b)
      Case Is = "HH"
        a = MD5LongAdd4(a, b Xor C Xor d, x, ac)
        a = MD5Rotate(a, S)
        a = MD5LongAdd(a, b)
      Case Is = "II"
        a = MD5LongAdd4(a, C Xor (b Or Not (d)), x, ac)
        a = MD5Rotate(a, S)
        a = MD5LongAdd(a, b)
    End Select
End Function
Private Function MD5Rotate(lngValue As Long, lngBits As Long) As Long
    Dim lngSign As Long
    Dim lngI As Long
    
    lngBits = (lngBits Mod 32)
    If lngBits = 0 Then MD5Rotate = lngValue: Exit Function
    For lngI = 1 To lngBits
        lngSign = lngValue And &HC0000000
        lngValue = (lngValue And &H3FFFFFFF) * 2
        lngValue = lngValue Or ((lngSign  0) And 1) Or _
                   (CBool(lngSign And &H40000000) And &H80000000)
    Next
    MD5Rotate = lngValue
End Function
Private Function TRID() As String
    Dim sngNum As Single, lngnum As Long
    Dim strResult As String
    
    sngNum = Rnd(2147483648#)
    strResult = CStr(sngNum)
    strResult = Replace(strResult, "0.", "")
    strResult = Replace(strResult, ".", "")
    strResult = Replace(strResult, "E-", "")
    TRID = strResult
End Function
Private Function MD564Split(lngLength As Long, bytBuffer() As Byte) As String
    Dim lngBytesTotal As Long, lngBytesToAdd As Long
    Dim intLoop As Integer, intLoop2 As Integer, lngTrace As Long
    Dim intInnerLoop As Integer, intLoop3 As Integer
    
    lngBytesTotal = lngTrack Mod 64
    lngBytesToAdd = 64 - lngBytesTotal
    lngTrack = (lngTrack + lngLength)
    If lngLength >= lngBytesToAdd Then
        For intLoop = 0 To lngBytesToAdd - 1
            arrSplit64(lngBytesTotal + intLoop) = bytBuffer(intLoop)
        Next intLoop
        MD5Conversion arrSplit64
        lngTrace = (lngLength) Mod 64
        For intLoop2 = lngBytesToAdd To lngLength - intLoop - lngTrace Step 64
            For intInnerLoop = 0 To 63
                arrSplit64(intInnerLoop) = bytBuffer(intLoop2 + intInnerLoop)
            Next intInnerLoop
            MD5Conversion arrSplit64
        Next intLoop2
        lngBytesTotal = 0
      Else
        intLoop2 = 0
    End If
    For intLoop3 = 0 To lngLength - intLoop2 - 1
        arrSplit64(lngBytesTotal + intLoop3) = bytBuffer(intLoop2 + intLoop3)
    Next intLoop3
End Function
Private Function MD5StringArray(strInput As String) As Byte()
    Dim intLoop As Integer
    Dim bytBuffer() As Byte
    ReDim bytBuffer(Len(strInput))
    
    For intLoop = 0 To Len(strInput) - 1
        bytBuffer(intLoop) = Asc(Mid(strInput, intLoop + 1, 1))
    Next intLoop
    MD5StringArray = bytBuffer
End Function
Private Sub MD5Conversion(bytBuffer() As Byte)
    Dim x(16) As Long, a As Long
    Dim b As Long, C As Long
    Dim d As Long
    
    a = arrLongConversion(1)
    b = arrLongConversion(2)
    C = arrLongConversion(3)
    d = arrLongConversion(4)
    MD5Decode 64, x, bytBuffer
    MD5Round "FF", a, b, C, d, x(0), S11, -680876936
    MD5Round "FF", d, a, b, C, x(1), S12, -389564586
    MD5Round "FF", C, d, a, b, x(2), S13, 606105819
    MD5Round "FF", b, C, d, a, x(3), S14, -1044525330
    MD5Round "FF", a, b, C, d, x(4), S11, -176418897
    MD5Round "FF", d, a, b, C, x(5), S12, 1200080426
    MD5Round "FF", C, d, a, b, x(6), S13, -1473231341
    MD5Round "FF", b, C, d, a, x(7), S14, -45705983
    MD5Round "FF", a, b, C, d, x(8), S11, 1770035416
    MD5Round "FF", d, a, b, C, x(9), S12, -1958414417
    MD5Round "FF", C, d, a, b, x(10), S13, -42063
    MD5Round "FF", b, C, d, a, x(11), S14, -1990404162
    MD5Round "FF", a, b, C, d, x(12), S11, 1804603682
    MD5Round "FF", d, a, b, C, x(13), S12, -40341101
    MD5Round "FF", C, d, a, b, x(14), S13, -1502002290
    MD5Round "FF", b, C, d, a, x(15), S14, 1236535329
    MD5Round "GG", a, b, C, d, x(1), S21, -165796510
    MD5Round "GG", d, a, b, C, x(6), S22, -1069501632
    MD5Round "GG", C, d, a, b, x(11), S23, 643717713
    MD5Round "GG", b, C, d, a, x(0), S24, -373897302
    MD5Round "GG", a, b, C, d, x(5), S21, -701558691
    MD5Round "GG", d, a, b, C, x(10), S22, 38016083
    MD5Round "GG", C, d, a, b, x(15), S23, -660478335
    MD5Round "GG", b, C, d, a, x(4), S24, -405537848
    MD5Round "GG", a, b, C, d, x(9), S21, 568446438
    MD5Round "GG", d, a, b, C, x(14), S22, -1019803690
    MD5Round "GG", C, d, a, b, x(3), S23, -187363961
    MD5Round "GG", b, C, d, a, x(8), S24, 1163531501
    MD5Round "GG", a, b, C, d, x(13), S21, -1444681467
    MD5Round "GG", d, a, b, C, x(2), S22, -51403784
    MD5Round "GG", C, d, a, b, x(7), S23, 1735328473
    MD5Round "GG", b, C, d, a, x(12), S24, -1926607734
    MD5Round "HH", a, b, C, d, x(5), S31, -378558
    MD5Round "HH", d, a, b, C, x(8), S32, -2022574463
    MD5Round "HH", C, d, a, b, x(11), S33, 1839030562
    MD5Round "HH", b, C, d, a, x(14), S34, -35309556
    MD5Round "HH", a, b, C, d, x(1), S31, -1530992060
    MD5Round "HH", d, a, b, C, x(4), S32, 1272893353
    MD5Round "HH", C, d, a, b, x(7), S33, -155497632
    MD5Round "HH", b, C, d, a, x(10), S34, -1094730640
    MD5Round "HH", a, b, C, d, x(13), S31, 681279174
    MD5Round "HH", d, a, b, C, x(0), S32, -358537222
    MD5Round "HH", C, d, a, b, x(3), S33, -722521979
    MD5Round "HH", b, C, d, a, x(6), S34, 76029189
    MD5Round "HH", a, b, C, d, x(9), S31, -640364487
    MD5Round "HH", d, a, b, C, x(12), S32, -421815835
    MD5Round "HH", C, d, a, b, x(15), S33, 530742520
    MD5Round "HH", b, C, d, a, x(2), S34, -995338651
    MD5Round "II", a, b, C, d, x(0), S41, -198630844
    MD5Round "II", d, a, b, C, x(7), S42, 1126891415
    MD5Round "II", C, d, a, b, x(14), S43, -1416354905
    MD5Round "II", b, C, d, a, x(5), S44, -57434055
    MD5Round "II", a, b, C, d, x(12), S41, 1700485571
    MD5Round "II", d, a, b, C, x(3), S42, -1894986606
    MD5Round "II", C, d, a, b, x(10), S43, -1051523
    MD5Round "II", b, C, d, a, x(1), S44, -2054922799
    MD5Round "II", a, b, C, d, x(8), S41, 1873313359
    MD5Round "II", d, a, b, C, x(15), S42, -30611744
    MD5Round "II", C, d, a, b, x(6), S43, -1560198380
    MD5Round "II", b, C, d, a, x(13), S44, 1309151649
    MD5Round "II", a, b, C, d, x(4), S41, -145523070
    MD5Round "II", d, a, b, C, x(11), S42, -1120210379
    MD5Round "II", C, d, a, b, x(2), S43, 718787259
    MD5Round "II", b, C, d, a, x(9), S44, -343485551
    arrLongConversion(1) = MD5LongAdd(arrLongConversion(1), a)
    arrLongConversion(2) = MD5LongAdd(arrLongConversion(2), b)
    arrLongConversion(3) = MD5LongAdd(arrLongConversion(3), C)
    arrLongConversion(4) = MD5LongAdd(arrLongConversion(4), d)
End Sub
Private Function MD5LongAdd(lngVal1 As Long, lngVal2 As Long) As Long
    Dim lngHighWord As Long
    Dim lngLowWord As Long
    Dim lngOverflow As Long

    lngLowWord = (lngVal1 And &HFFFF&) + (lngVal2 And &HFFFF&)
    lngOverflow = lngLowWord \ 65536
    lngHighWord = (((lngVal1 And &HFFFF0000) \ 65536) + _
                   ((lngVal2 And &HFFFF0000) \ 65536) + _
                   lngOverflow) And &HFFFF&
    MD5LongAdd = MD5LongConversion((lngHighWord * 65536#) + _
                                   (lngLowWord And &HFFFF&))
End Function
Private Function MD5LongAdd4(lngVal1 As Long, lngVal2 As Long, _
                             lngVal3 As Long, lngVal4 As Long) As Long
    Dim lngHighWord As Long
    Dim lngLowWord As Long
    Dim lngOverflow As Long

    lngLowWord = (lngVal1 And &HFFFF&) + (lngVal2 And &HFFFF&) + _
                 (lngVal3 And &HFFFF&) + (lngVal4 And &HFFFF&)
    lngOverflow = lngLowWord \ 65536
    lngHighWord = (((lngVal1 And &HFFFF0000) \ 65536) + _
                   ((lngVal2 And &HFFFF0000) \ 65536) + _
                   ((lngVal3 And &HFFFF0000) \ 65536) + _
                   ((lngVal4 And &HFFFF0000) \ 65536) + _
                   lngOverflow) And &HFFFF&
    MD5LongAdd4 = MD5LongConversion((lngHighWord * 65536#) + _
                                    (lngLowWord And &HFFFF&))
End Function
Private Sub MD5Decode(intLength As Integer, lngOutBuffer() As Long, _
                      bytInBuffer() As Byte)
    Dim intDblIndex As Integer
    Dim intByteIndex As Integer
    Dim dblSum As Double
    
    intDblIndex = 0
    For intByteIndex = 0 To intLength - 1 Step 4
        dblSum = bytInBuffer(intByteIndex) + _
                 bytInBuffer(intByteIndex + 1) * 256# + _
                 bytInBuffer(intByteIndex + 2) * 65536# + _
                 bytInBuffer(intByteIndex + 3) * 16777216#
        lngOutBuffer(intDblIndex) = MD5LongConversion(dblSum)
        intDblIndex = (intDblIndex + 1)
    Next intByteIndex
End Sub
Private Function MD5LongConversion(dblValue As Double) As Long
    If dblValue  0 Or dblValue >= OFFSET_4 Then Error 6
    If dblValue = MAXINT_4 Then
        MD5LongConversion = dblValue
      Else
        MD5LongConversion = dblValue - OFFSET_4
    End If
End Function
Private Sub MD5Finish()
    Dim dblBits As Double
    Dim arrPadding(72) As Byte
    Dim lngBytesBuffered As Long
    
    arrPadding(0) = &H80
    dblBits = lngTrack * 8
    lngBytesBuffered = lngTrack Mod 64
    If lngBytesBuffered = 56 Then
        MD564Split (56 - lngBytesBuffered), arrPadding
      Else
        MD564Split (120 - lngTrack), arrPadding
    End If
    arrPadding(0) = MD5LongConversion(dblBits) And &HFF&
    arrPadding(1) = MD5LongConversion(dblBits) \ 256 And &HFF&
    arrPadding(2) = MD5LongConversion(dblBits) \ 65536 And &HFF&
    arrPadding(3) = MD5LongConversion(dblBits) \ 16777216 And &HFF&
    arrPadding(4) = 0
    arrPadding(5) = 0
    arrPadding(6) = 0
    arrPadding(7) = 0
    MD564Split 8, arrPadding
End Sub
Private Function MD5StringChange(lngnum As Long) As String
        Dim bytA As Byte
        Dim bytB As Byte
        Dim bytC As Byte
        Dim bytD As Byte
        
        bytA = lngnum And &HFF&
        If bytA  16 Then
            MD5StringChange = "0" & Hex(bytA)
          Else
            MD5StringChange = Hex(bytA)
        End If
        bytB = (lngnum And &HFF00&) \ 256
        If bytB  16 Then
            MD5StringChange = MD5StringChange & "0" & Hex(bytB)
          Else
            MD5StringChange = MD5StringChange & Hex(bytB)
        End If
        bytC = (lngnum And &HFF0000) \ 65536
        If bytC  16 Then
            MD5StringChange = MD5StringChange & "0" & Hex(bytC)
          Else
            MD5StringChange = MD5StringChange & Hex(bytC)
        End If
        If lngnum  0 Then
            bytD = ((lngnum And &H7F000000) \ 16777216) Or &H80&
          Else
            bytD = (lngnum And &HFF000000) \ 16777216
        End If
        If bytD  16 Then
            MD5StringChange = MD5StringChange & "0" & Hex(bytD)
          Else
            MD5StringChange = MD5StringChange & Hex(bytD)
        End If
End Function
Private Function MD5Value() As String
    MD5Value = LCase(MD5StringChange(arrLongConversion(1)) & _
                     MD5StringChange(arrLongConversion(2)) & _
                     MD5StringChange(arrLongConversion(3)) & _
                     MD5StringChange(arrLongConversion(4)))
End Function
Public Function FnsCalculateMD5(strMessage As String) As String
    Dim bytBuffer() As Byte
    
    bytBuffer = MD5StringArray(strMessage)
    MD5Start
    MD564Split Len(strMessage), bytBuffer
    MD5Finish
    FnsCalculateMD5 = MD5Value 'Korrigiert by Willi Wipp
End Function
Private Sub MD5Start()
    lngTrack = 0
    arrLongConversion(1) = MD5LongConversion(1732584193#)
    arrLongConversion(2) = MD5LongConversion(4023233417#)
    arrLongConversion(3) = MD5LongConversion(2562383102#)
    arrLongConversion(4) = MD5LongConversion(271733878#)
End Sub
Sub Starten()

Cells(5, 8).Value = FnsCalculateMD5(Cells(5, 5) & Cells(5, 6))

End Sub Sub test()
Cells(5, 8).Activate
End Sub

Anzeige
AW: password_hash() als vba
04.05.2023 12:58:08
Haustein
MD5 hilft mir leider nichts - weil zu unsicher

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige