Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Java-Codeschnipsel entschlüsseln (https://www.delphipraxis.net/26534-java-codeschnipsel-entschluesseln.html)

Interceptor 24. Jul 2004 21:47


Java-Codeschnipsel entschlüsseln
 
Hi Leuts.

Hätte mal an die Java Progger unter euch ein Anliegen:
Ich hab hier ein Stück Java-Code vorliegen, in dem eine Anschrift drin versteckt ist. Da ich aber nicht gerade Java versiert bin, sehe ich keine Möglichkeit das da zu entschlüsseln.
Ein kleiner Denkanstoß wäre echt hilfreich, oder wie ich das zumindest am besten zum Delphi-Code umkonvertieren könnte, um es dann letztendlich zu entschlüsseln.

Code wie folgt:


Code:
    private static string Anschrift()
    {
      char[] schluessel = "QWE61R8TZ5UIO7PAS2DFGHJK3LYXCV4BN0M9".ToCharArray();
      char[] code = "W271C5N I2GBKW KYVL\nCWPBW2 & Y2IB2WIB2WG72\nV227LCT2WG75. 9\nZDX6X 1Ü58VA5K".ToCharArray();
      string anschrift = "";
      for(int i = 0; i < code.Length; i++)
      {
        if(code[i]>='A' && code[i]<='Z')
          anschrift += schluessel[code[i] - 'A' + 10];
        else if(code[i]>='0' && code[i]<='9')
          anschrift += schluessel[code[i] - '0'];
        else
          anschrift += code[i];
      }

      return anschrift;
    }

  }
}
Bin für jede Hilfe dankbar!

Mfg, Interceptor

bttb930 24. Jul 2004 22:16

Re: Java-Codeschnipsel entschlüsseln
 
Delphi-Quellcode:
function Anschrift: string;
const
  schluessel: string = 'QWE61R8TZ5UIO7PAS2DFGHJK3LYXCV4BN0M9';
  code: string = 'W271C5N I2GBKW KYVL'#10#13'CWPBW2 & Y2IB2WIB2WG72'#10#13'V227LCT2WG75. 9'#10#13'ZDX6X 1Ü58VA5K';
var
  i: Integer;
begin
  Result := '';
  for i := 1 to Length(code) do
    if (code[i] >= 'A') and (code[i] <= 'Z') then
      Result := Result + schluessel[Ord(code[i]) - Ord('A') + 10]
    else if (code[i] >= '0') and (code[i] <= '9') then
      Result := Result + schluessel[Ord(code[i]) - Ord('0')]
    else
      Result := Result + code[i];
end;

bttb930 24. Jul 2004 22:19

Re: Java-Codeschnipsel entschlüsseln
 
sorry, du mußt noch überall eine 1 addieren:

Delphi-Quellcode:
function Anschrift: string;
const
  schluessel: string = 'QWE61R8TZ5UIO7PAS2DFGHJK3LYXCV4BN0M9';
  code: string = 'W271C5N I2GBKW KYVL'#10#13'CWPBW2 & Y2IB2WIB2WG72'#10#13'V227LCT2WG75. 9'#10#13'ZDX6X 1Ü58VA5K';
var
  i: Integer;
begin
  Result := '';
  for i := 1 to Length(code) do
    if (code[i] >= 'A') and (code[i] <= 'Z') then
      Result := Result + schluessel[Ord(code[i]) - Ord('A') + 10 + 1]
    else if (code[i] >= '0') and (code[i] <= '9') then
      Result := Result + schluessel[Ord(code[i]) - Ord('0') + 1]
    else
      Result := Result + code[i + 1];
end;

bttb930 24. Jul 2004 22:21

Re: Java-Codeschnipsel entschlüsseln
 
ach so, doch nicht überall - beim letzten
Delphi-Quellcode:
Result := Result + code[i]
nicht

Interceptor 24. Jul 2004 22:25

Re: Java-Codeschnipsel entschlüsseln
 
Hey Danke!

Echt super, funzt einwandfrei!
:thuimb:

Interceptor 25. Jul 2004 15:52

Re: Java-Codeschnipsel entschlüsseln
 
Heute hab ich den JavaCode ganz oben etwas umgeschrieben, und kompiliert...Um mir dann das Ergebnis in der Konsole ausgeben zu lassen.

Code:
Code:
import java.lang.*;

public class Anschrift { 

    private static String Anschrift(String[] args)
    { 
      char[] schluessel = "QWE61R8TZ5UIO7PAS2DFGHJK3LYXCV4BN0M9".toCharArray();
      char[] code = "W271C5N I2GBKW KYVL\nCWPBW2 & Y2IB2WIB2WG72\nV227LCT2WG75. 9\nZDX6X 1Ü58VA5K".toCharArray();
      String anschrift = "";
      for(int i = 0; i < code.length; i++)
      { 
        if(code[i]>='A' && code[i]<='Z')
          anschrift += schluessel[code[i] - 'A' + 10];
        else if(code[i]>='0' && code[i]<='9')
          anschrift += schluessel[code[i] - '0'];
        else
          anschrift += code[i];
      }
      System.out.print("" + anschrift + "");
      return anschrift;
   } 
}
Das Kompilieren an sich klappt soweit, als Ergebnis bekomme ich die "Anschrift.class"... soweit so gut :-)
Jedoch, wenn ich versuche die Datei mit der Konsole zu starten (...\bin\java Anschrift) gibt es folgende Fehlermeldung:
Zitat:

Exception in thread "main" java.lang.NoSuchMethodError: main
Die Class liegt direkt im <bin> Verzeichnis meines JDK's (v1.4.1), in dem die Source-Datei auch kompiliert wurde. Erwartet hatte ich, dass mit dem Befehl System.out.print("" + anschrift + ""); die entschlüsselte Anschrift direkt in der Konsole ausgegeben wird...tut sie aber nicht!

Weiss vielleicht einer Rat, oder kann mir sagen was ich falsch mache?
Wäre euch WIRKLICH sehr verbunden!

Chewie 25. Jul 2004 15:55

Re: Java-Codeschnipsel entschlüsseln
 
Die Fehlermeldung ist doch recht aussagekräftig: Du hast keine Methode, die main heißt. Diese wird aber als Einstiegspunkt benötigt.
Benenne also deine Methode entsprechend um.

Interceptor 25. Jul 2004 16:02

Re: Java-Codeschnipsel entschlüsseln
 
Hab ich schon versucht, aber auch wenn ich die funktion in "main" umbenenne, bekomm ich das selbe Ergebnis

Also so hab ich es gemacht:
private static String main(String[] args)

[ot]
Bah, Java is was reudiges ^^
[/ot]

dizzy 25. Jul 2004 17:16

Re: Java-Codeschnipsel entschlüsseln
 
Füge das hier mal der Klasse Anschrift hinzu:

Code:
public static void main(String args[]){
  System.out.println(Anschrift());
}
(main muss "void" und "public" und "static" sein)

Und nimm das print aus der Methode Anschrift heraus, und die Parameter (String args[]) auch weg. Drüber hinaus sollte die Methode nicht Anschrift heissen, da sie sonst als Konstruktor der Klasse verstanden wird! Besser: GetAnschrift() oder so.


Und ja, Java ist schlicht und ergreifend grausam und ekelhaft und langsam und schwerfällig und unlogisch und einfach nicht schön :twisted:... aber ich muss das Zeugs für die FH können... :evil:


Alle Zeitangaben in WEZ +1. Es ist jetzt 19:30 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz