The_Invisible
2008-02-27, 11:10:31
habe in java kleine encrypt/decrypt funktionen gebaut und würde das jetzt gerne nach php portieren. das größte problem dabei sind anscheinend die datentypen zb int in java 8bit und in php 32bit. heraus kommt dabei nur wurstsalat.
Java:
private static long eKEY = 0xF4603CDE;
private static String eDecrypt(String Text)
{
StringBuffer sbT = new StringBuffer(), sbB = new StringBuffer();
int buf = 0;
int shr1 = (int) ((eKEY & 0xFF000000L) >> 24);
int shr2 = (int) ((eKEY & 0x00FF0000L) >> 16);
int shr3 = (int) ((eKEY & 0x0000FF00L) >> 8);
int shr4 = (int) (eKEY & 0x000000FFL);
sbB.append(Text);
sbB.reverse();
String tEnc = sbB.toString();
int i = 0;
for(int b: tEnc.toCharArray())
{
if (i != 0)
{
char bb = (char) (buf ^ shr2 ^ shr4 ^ shr3 ^ b ^ shr1);
sbT.append(bb);
}
buf = (int) b;
i++;
}
sbT.append((char) (buf ^ shr2 ^ shr4 ^ shr3 ^ shr1));
return sbT.reverse().toString();
}
PHP:
function decrypt(&$text)
{
$sbT = $sbB = "";
$buf = (int) 0;
$shr1 = (int) (($key & 0xFF000000) >> 24);
$shr2 = (int) (($key & 0x00FF0000) >> 16);
$shr3 = (int) (($key & 0x0000FF00) >> 8);
$shr4 = (int) ($key & 0x000000FF);
$sbB = strrev($text);
for($i=0;$i<strlen($sbB);$i++)
{
$b = (int) substr($sbB, $i, 1);
if($i != 0)
{
$bb = (int) ($buf ^ $shr2 ^ $shr4 ^ $shr3 ^ $b ^ $shr1);
$sbT .= (string) $bb;
}
$buf = (int) $b;
}
$sbT .= (string) ($buf ^ $shr2 ^ $shr4 ^ $shr3 ^ $shr1);
$text = strrev($sbT);
}
wenn wer eine lösung hat nur her damit, verzweifle schon langsam. und bevor die sicherheitsfanatiker kommen: es reicht für den einsatzzweck völlig, also nur posten wenn man lösungsansätze hat.
mfg
Java:
private static long eKEY = 0xF4603CDE;
private static String eDecrypt(String Text)
{
StringBuffer sbT = new StringBuffer(), sbB = new StringBuffer();
int buf = 0;
int shr1 = (int) ((eKEY & 0xFF000000L) >> 24);
int shr2 = (int) ((eKEY & 0x00FF0000L) >> 16);
int shr3 = (int) ((eKEY & 0x0000FF00L) >> 8);
int shr4 = (int) (eKEY & 0x000000FFL);
sbB.append(Text);
sbB.reverse();
String tEnc = sbB.toString();
int i = 0;
for(int b: tEnc.toCharArray())
{
if (i != 0)
{
char bb = (char) (buf ^ shr2 ^ shr4 ^ shr3 ^ b ^ shr1);
sbT.append(bb);
}
buf = (int) b;
i++;
}
sbT.append((char) (buf ^ shr2 ^ shr4 ^ shr3 ^ shr1));
return sbT.reverse().toString();
}
PHP:
function decrypt(&$text)
{
$sbT = $sbB = "";
$buf = (int) 0;
$shr1 = (int) (($key & 0xFF000000) >> 24);
$shr2 = (int) (($key & 0x00FF0000) >> 16);
$shr3 = (int) (($key & 0x0000FF00) >> 8);
$shr4 = (int) ($key & 0x000000FF);
$sbB = strrev($text);
for($i=0;$i<strlen($sbB);$i++)
{
$b = (int) substr($sbB, $i, 1);
if($i != 0)
{
$bb = (int) ($buf ^ $shr2 ^ $shr4 ^ $shr3 ^ $b ^ $shr1);
$sbT .= (string) $bb;
}
$buf = (int) $b;
}
$sbT .= (string) ($buf ^ $shr2 ^ $shr4 ^ $shr3 ^ $shr1);
$text = strrev($sbT);
}
wenn wer eine lösung hat nur her damit, verzweifle schon langsam. und bevor die sicherheitsfanatiker kommen: es reicht für den einsatzzweck völlig, also nur posten wenn man lösungsansätze hat.
mfg