Einzelnen Beitrag anzeigen

athomas

Registriert seit: 4. Okt 2007
21 Beiträge
 
#1

Kodierungsproblem von Delphi zu Java

  Alt 15. Aug 2011, 22:57
Hallo,
ich habe folgendes Problem: ich habe ein verschlüsselungsprogramm in delphi geschrieben und will nun auf diesen verschlüsselten text von java zugreifen.
der algorithmus sieht so aus:
Code:
function coder(s, key: string; decode: boolean): string;
var
  i, z: integer;
begin
  if key<>'' then
    begin
      for i:=1 to length(s) do
        begin
          if not(decode) then
            begin
              z:=ord(s[i]);
              z:=z+ord(key[i mod length(key) + 1]);
              s[i]:=chr(z);
            end
          else
            begin
              z:=ord(s[i]);
              z:=z-ord(key[i mod length(key) + 1]);
              s[i]:=chr(z);
            end;
        end;
    end;
  result:=s;
end;
aber wenn ich ihn in java überführe habe ich probleme mit dem unicode, also bin ich auf byte[] ausgewichen, aber der text ist nicht mehr entschlüsselbar könnt ihr mir vllt helfen??
schonmal vielen dank gruß thomas
hier der java code:
Code:
private String coder(String sr, boolean decode) {
        int[] code = new int[sr.length()];
        try {
        byte[] key = "faselblubberbla".getBytes("ASCII");
        byte[] s = sr.getBytes("ASCII");

        int count = 0;
        if (key != null && key.length > 0) {
            int z = 0;
            for (int i = 1; i < s.length; i++) {
                int delta = key[(i+1) % key.length];
                if (!decode) {
                    z = s[i];
                    z = mod(z + delta, 128);
                    code[count] = z;
                } else {
                    z = s[i];
                    z = mod(z - delta, 128);
                    code[count] = z;
                }

                count++;
            }
        }

        System.out.println(new Character((char) s[0]).toString() +" "+ s[0]);
        System.out.println(new Character((char) key[0]).toString() +" "+ key[0]);
        System.out.println(new Character((char) code[0]).toString() +" "+ code[0]);

        } catch (UnsupportedEncodingException e) {
           
        }

        String str = "";
        for (int i = 0; i < sr.length(); i++) {
            str += new Character((char) code[i]);
        }
        return str;
    }
  Mit Zitat antworten Zitat