Hallo,
ich benötige in einem Programm zur Identifizierung von Textblöcken einen Hash-Wert und verwende hierzu die @Password Funktion, die ich über Evaluate aufrufe.
Das hat soweit funktioniert, bis ich bemerkte, dass @Password auf ca. 2000 Zeichen beschränkt ist.
Meine Idee bestand nun darin, längere Zeichenketten in einzelne Blöcke aufteilen und die @Password-Funktion auf die einzelnen Blöcke anwenden.
Bei wiederholtem Aufruf der @Password Funktion in einer Schleife liefert Evaluate aber nicht mehr nur den Hash-Wert in der Form eines 32-zeichen langen Hex-Wertes (ABCDEF.....) zurück, der Ergebniswert besteht aus dem Hex-Wert und dem Rest der übergebenen Zeichenkette.
Das unten stehende Beispiel liefert den Hash-Wert gefolgt von 40*"x" zurück
Sub Initialize
Const Blocksize = 40
Dim i As Integer
Dim s As String
Dim strHash As String
Dim teil As String
Dim Ausfuehren As String
Dim tmp As variant
s = String$(100,"x")
strHash=""
For i=0 To Len(s) Step Blocksize
teil = strHash + Mid$(s,i+1,Blocksize)
Ausfuehren = {@Password("} + teil + {")}
tmp = Evaluate(Ausfuehren)
strHash = tmp(0)
Next
Print "Ergebnis: " strHash
End Sub
Woran kann das liegen?
Danke & Gruß,
Gregor