Unterschiedliche Ausgabe von toBase64 () in CFML auf 2 verschiedenen Rechnern

8

FINAL EDIT: SOLVED , Aktualisierung des lokalen Entwicklers auf Railo 3.3.4.003 hat das Problem behoben.

Ich muss RC4 einige Strings verschlüsseln und sie base64-kodiert haben und ich laufe in eine Situation, in der derselbe Input verschiedene Ausgaben auf zwei verschiedenen Dev-Setups erzeugt.

Zum Beispiel, wenn ich eine Zeichenfolge [email protected]
habe Auf einer Maschine (DEV-1) bekomme ich: DunU+ucIPz/Z7Ar+HTw=
und auf der anderen (DEV-2) wird es sein: DunU+ucIlZfZ7Ar+HTw=

Erstens bin ich rc4 verschlüsselt es durch eine Funktion hier . Als nächstes füttere ich es: toBase64( my_rc4_encrypted_data, "iso-8859-1")

Soweit ich das beurteilen kann, ist die rc4-Verschlüsselung bei beiden gleich (oder ich vermisse etwas). Im Folgenden sind SERVER-Variablen von beiden Maschinen sowie die Verschlüsselungsfunktion.

Ist das etwas, mit dem wir einfach leben müssen oder gibt es etwas, das ich tun kann, um es "richtig zu handhaben" (wegen eines fehlenden besseren Wortes). Ich bin besorgt, dass das mich in Zukunft beißen wird und ich mich wundere, dass es abgewendet werden kann.

Bearbeiten 1: Ausgabe von my_rc4_encrypted_data.getBytes () gibt zurück: dev-1:

%Vor%

dev-2:

%Vor%

(Keine Codierung an getBytes() übergeben)

DEV-1 (Remote)

%Vor%

DEV-2 (lokal)

%Vor%

RC4-Funktion:

%Vor%     
vector 11.01.2013, 22:33
quelle

2 Antworten

2

Leigh schrieb:

  

Aber achten Sie darauf, die gleiche Codierung in Ihrem Test zu verwenden, dh   String.getBytes (encoding) (Edit) Wenn Sie es weglassen, ist der Standard jvm   verwendet.

Leigh hat recht - RAILO-1393 resultierte in einem ändern zu toBase64 in Bezug auf Zeichenkodierungen in 3.3.0.017, die ist zwischen den Versionen 3.3.2.002 und 3.2.2.000, die Sie verwenden.

    
Peter Boughton 01.02.2013, 15:14
quelle
0
  

Soweit ich das beurteilen kann, ist die rc4-Verschlüsselung bei beiden gleich (oder ich vermisse etwas). Im Folgenden sind SERVER-Variablen von beiden Maschinen sowie die Verschlüsselungsfunktion.

Ich würde vorschlagen, die Ausgabe in zwei Dateien zu speichern und dann die Dateigröße oder, noch besser, ein Dateivergleichswerkzeug zu vergleichen. Base64-Codierung ist ein Standardansatz zum Konvertieren von Binärdaten in Zeichenfolgedaten.

Unter der Annahme, dass Ihre Binärdateien zu genau 100% identisch sind, versuchen Sie auf beiden Servern, die Daten in Base 64 und dann wieder in Binärdaten zu konvertieren. Ich würde voraussagen, dass nur einer (oder keiner) der Server die Daten wieder in Binärdaten konvertieren kann. An diesem Punkt sollten Sie eine Ahnung haben, welcher Server Ihr Problem verursacht und sich weiter einarbeiten.

Wenn beide die Daten der Base 64 in Binärdateien umkehren können und die Binärdatei auf beiden Servern korrekt ist ... nun, ich bin mir nicht sicher.

    
Doug Hughes 14.01.2013 17:31
quelle

Tags und Links