ForumJava und die Platformunabhängigkeit
C.Töpp – Dienstag, 24. Oktober 2006 16:49 Uhr

Letztens habe ich mal wieder in Java programmieren müssen (gezwungenermassen, also steinigt mich nicht ;). Unter anderem musste ich auch eine Ver- und Entschlüsselungsroutine einbauen.

Nachdem ich die beliebte Kombination von RSA und AES fertig und (lokal) getestet hatte, gab ich die Funktion an unseren Kunden weiter. Leider funktionierte das nicht wirklich, da das entschlüsseln nur auf der selben Hardware lief.

Getestete Platformen sind
* Linux x86_64 => Linux x86_64 (Funktioniert)
* Linux i386 => Linux i386 (Funktioniert)
* Windows 2000 => Windows 2000 (Funktioniert)
* Linux i386 => Linux x86_64 (Funktioniert nicht)
* Windows 2000 => Linux i386 (Funktioniert nicht)
* Windows 2000 => Linux x86_64 (Funktioniert nicht)
* OS X (ppc) => Linux x86_64 (Funktioniert nicht)

Der Bug ist an Sun gemeldet und von Sun bestätigt. Leider bekommt man zu der BugID keinerlei Informationen von Sun.

Hat jemand von euch ein ähnliches Verhalten erlebt und eventuell einen Workaround?

Die Source der Funktion ist unter [1] zu finden.

[1] http://c.toepp.googlepages.com/Crypt.java.gz

2 Antworten
Ernst August – Dienstag, 24. Oktober 2006 17:12 Uhr

Hi !
Ich weiss ja nicht welche Ausbildung du genossen hast.
Bei uns in der Uni galt die Devise:
Kommentieren, Kommentieren, Kommentieren.
Nicht kommentierte Programme wurden mit 0 Punkten bewertet
und gar nicht erst naeher angeschaut.
Als Kunde wuerde ich unkommentierten Code auch nicht annehmen/bezahlen,
sofern mir der Source-Code zusteht.

Ernst

Dieter Drewanz – Dienstag, 24. Oktober 2006 21:10 Uhr

Wenn ich einen Teil eines Codes poste, der für eine Firma ist, würde ich die Kommentare auch entfernen, wenn diese zuviel von der Gesamtheit verraten würden. Es geht ja nur um den Bug.
Bei Java ist der Sourcecode ja nicht frei und daher weiß man nicht was man wirklich hat. Die Hardwareunabhängigkeit von Java Programmen ist eine feine Sache. Umgekehrt läuft Linux (auch OpenOffice, Firefox) auf so vielen Systemen, daß diese auch nahezu als hardwareunabhägig angesehen werden könnten.
Allerdings kann der Fehler im code gut verwendet werden, um herauszufinden welchen Prozessor ein Computer verwendet. Da helfen dann die Spezailtools die diese Info zurückhalten sollen nichts mehr (es gibt einfach auch zu viele www-Seiten die ohne Java oder Javascript leider nicht gehen). Vor ein paar Wochen war die Veröffentlichung einer Professorin im IT Bereich (leider habe ich den Link nicht mehr), daß man auch einen Virus in die virtuelle Maschine, speziell in den Code der Bridge zwischen den Prozessoren einbringen kann. Für einen solchen Angriff wird die Info Prozessortyp ja auch dringendst benötigt. Als Angesurfter kann ich somit eine Page machen, die das herausbringt.
Wie kriegt man den Bug am schnellsten behoben? Ganz einfach eine Homepage entwerfen mit Java code, der diese Information dem draufsurfenden mitteilt und zum Lesen gibt, wie gefählich das ist. Die Seite unter LGPL stellen, somit kann es jeder übernehmen, wenn er will, als kleine Spielerei.