Domino 9 und frühere Versionen > ND8: Entwicklung

Evaluate arbeitet bei wiederholter Ausführung nicht korrekt

(1/1)

gstueb:
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


--- Code: ---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
--- Ende Code ---

Woran kann das liegen?

Danke & Gruß,
Gregor

ascabg:
Hallo,

Mal ganz dumm gefragt.

Ist es so gewollt, dass Du an den beim ersten Durchlauf korrekt ermittelten Hash-Wert,
noch einmal 40*"x" anhaengst (also Hash-Wert + 40*"x") und diesen neuen String
(jetzt also 32+40=72 Zeichen langen String) erneut durch die Password-Funktion
jagst?


Andreas

gstueb:
Hallo Andreas,

ja, das ist gewollt. In der endgültigen Version wird die Blockgröße dann auch nicht bei 40, sondern eher bei 1500 liegen.

Der Hash-Wert vom Durchlauf n muss ja irgendwie in den Durchlauf n+1 mit einfließen, sonst wäre der Inhalt der ersten Blöcke für das Endergebnis ja ohne Belang.

Gruß,
Gregor

ascabg:
Dann auch schon mal den Hinweis in der Designer-Hilfe zu @Password gelesen?


--- Zitat ---Hinweis  Strings that begin with an open parenthesis "(" are not encoded.
--- Ende Zitat ---


Andreas

gstueb:

--- Zitat von: ascabg am 04.11.13 - 14:53:41 ---Dann auch schon mal den Hinweis in der Designer-Hilfe zu @Password gelesen?


--- Zitat ---Hinweis  Strings that begin with an open parenthesis "(" are not encoded.
--- Ende Zitat ---

Andreas

--- Ende Zitat ---

Wer lesen kann ist klar im Vorteil. Danke...  :-\

Navigation

[0] Themen-Index

Zur normalen Ansicht wechseln