Autor Thema: Evaluate arbeitet bei wiederholter Ausführung nicht korrekt  (Gelesen 1476 mal)

Offline gstueb

  • Aktives Mitglied
  • ***
  • Beiträge: 125
  • Geschlecht: Männlich
  • God is real unless declared integer
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

Woran kann das liegen?

Danke & Gruß,
Gregor

Offline ascabg

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 3.697
  • Geschlecht: Männlich
Re: Evaluate arbeitet bei wiederholter Ausführung nicht korrekt
« Antwort #1 am: 04.11.13 - 14:38:34 »
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

Offline gstueb

  • Aktives Mitglied
  • ***
  • Beiträge: 125
  • Geschlecht: Männlich
  • God is real unless declared integer
Re: Evaluate arbeitet bei wiederholter Ausführung nicht korrekt
« Antwort #2 am: 04.11.13 - 14:47:00 »
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

Offline ascabg

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 3.697
  • Geschlecht: Männlich
Re: Evaluate arbeitet bei wiederholter Ausführung nicht korrekt
« Antwort #3 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.


Andreas

Offline gstueb

  • Aktives Mitglied
  • ***
  • Beiträge: 125
  • Geschlecht: Männlich
  • God is real unless declared integer
Re: Evaluate arbeitet bei wiederholter Ausführung nicht korrekt
« Antwort #4 am: 04.11.13 - 15:14:13 »
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.

Andreas

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

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz