Verschlüsselung
Andy A.
- php
Hi,
ich habe ein großes Problem mit meiner Verschlüsselungsfunktion. s.u.
Es kommt halt am Ende nicht das richtige wieder raus.
---------------------------------------------------------------------
<textarea rows="27" name="S1" cols="70"><?php
$c1=41088;
$c2=88104;
Function encryp($s,$key,$rueckw){
global $c1,$c2;
if ($rueckw) {
For ($i=0;$i<=strlen($s)-1; $i++){
$result.=chr(substr($s,$i,1) ^ ($key >> 8) & 0xff);
$key = ((ord(substr($result,-1))+$key)*$c1 + $c2) & 0xffff;
echo "$key ".($key >> 8)."\n";
}
} else {
For ($i=strlen($s)-1;$i>=0; $i--){
$result.=chr(ord(substr($s,$i,1) ^ ($key >> 8)));
$key = (ord(substr($result,-1))+$key)*$c1 + $c2;
}
}
return $result;}
$s="testte";
$s1=encryp($s,815,1);
$result=bin2hex($s1);
echo "$s1
$result\n";
$s1= pack("H" . strlen($result),$result);
$result=encryp($s1,815,1);
echo "\n$result";
?></textarea>
---------------------------------------------------------------------
momentan kann es auf http://www.andreas-albrecht.de/te.php "besichtigt" werden.
Ich bin dankbar für jede Hilfe!
//Ich hab das schon mal geschrieben. Ich hoffe dass ich vielleicht dieses Mal jemanden finde der mir erklären kann, warum beim Entschlüsseln nicht das richtige rauskommt.
//Zur Frage beim letzten Mal: Das hier ist eine Umschrift eier dephi-Funktion.
Andy
hallo,
nimm irgendwas, dass in php integriert ist. die verfahren sind sicher und schon von milliardentausendzwölf menschen nach fehlern abgesucht worden.
gruss
Es soll nicht groß verändert werden, weil es die gleichen Ergebnisse bringen soll, wie die delphi-Funktion.
dann portier einfach die delphi funktion, das sollte kein problem sein.
Hier ist sie:
Function Encryp(Const S: String; Key: Word; rueckw: Boolean): String;
Var
I: byte;
oben, unten: byte;
Begin
Setlength(Result, length(S));
If Rueckw Then Begin
For I := Length(S) Downto 1 Do Begin
Result[I] := char(byte(S[I]) Xor (Key Shr 8));
Key := (byte(Result[I]) + Key) * C1 + C2;
End;
End
Else Begin
For I := 1 To Length(S) Do Begin
Result[I] := char(byte(S[I]) Xor (Key Shr 8));
Key := (byte(Result[I]) + Key) * C1 + C2;
End;
End;
Encryp := result;
End;