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;
}