Ich dachte es würde gehen, indem ich den text mit dem dazugehörigen privmsgs_bbcode_uid und einem zusätzlichen wert zwischen 0 und 2 in den Verschlüsselungsalghorythmus schicke, aber da lag ich wohl falsch.
Hier mal mein Ansatz, vielleicht kann mir ja da einer weiterhelfen.
Code: Alles auswählen
<?php
function hex2bin($text)
{
$result = '';
$decode[ 48]= 0; // 0
$decode[ 49]= 1; // 1
$decode[ 50]= 2; // 2
$decode[ 51]= 3; // 3
$decode[ 52]= 4; // 4
$decode[ 53]= 5; // 5
$decode[ 54]= 6; // 6
$decode[ 55]= 7; // 7
$decode[ 56]= 8; // 8
$decode[ 57]= 9; // 9
$decode[ 65]=10; // A
$decode[ 66]=11; // B
$decode[ 67]=12; // C
$decode[ 68]=13; // D
$decode[ 69]=14; // E
$decode[ 70]=15; // F
$decode[ 97]=10; // a
$decode[ 98]=11; // b
$decode[ 99]=12; // c
$decode[100]=13; // d
$decode[101]=14; // e
$decode[102]=15; // f
for($i=0;$i < bcdiv(strlen($text),2);$i++)
{
$result .= chr(($decode[ord(substr($text,$i*2,1))]*16)+$decode[ord(substr($text,($i*2)+1,1))]);
}
return $result;
}
function make_key_array($keyint)
{
if ($keyint < 0) $keyint = bcpow(2,32) + $keyint;
for($i=31;$i>=0;$i--)
{
$test = bcpow(2,$i);
if ($keyint>=$test)
{
$bit = 1;
$keyint = $keyint - $test;
}
else
{
$bit = 0;
}
$key4[bcdiv($i,8)]=chr(ord($key4[bcdiv($i,8)])+bcpow(2,bcmod($i,8))*$bit);
}
return array($key4[0],$key4[1],$key4[2],$key4[3]);
}
function xor_text($text,$keyint,$dir)
{
if ($dir == 2) $text = hex2bin($text);
$key = make_key_array($keyint);
$result = '';
for($i = 0;$i < strlen($text);$i++)
{
$result .= chr(ord(substr($text,$i))^ord($key[bcmod($i,4)]));
}
if ($dir == 1) return bin2hex($result); else return $result;
}
//
//Datenbank Zugang
//
$benutzer = "root"; // Benutzername
$passwort = ""; // Passwort
$db = "popo"; // Name deiner Datenbank
$hostname = "localhost"; // Hostname, kann normalerweise so belassen werden.
$link = mysql_connect("$hostname", $benutzer, $passwort);
$res = mysql_db_query("$db", "select * from phpbb_privmsgs_text where privmsgs_text_id = 3753 ");
while($row = mysql_fetch_array($res)){
$msgkey = $row['privmsgs_key'];
$bbcode_uid = $row['privmsgs_bbcode_uid'];
$privmsg_text = $row['privmsgs_text'];
// $result = xor_text($privmsg_text,$msgkey,2);
$result = xor_text($privmsg_text,$bbcode_uid,2);
}
//echo $privmsg_text;
echo $result;
?>