STARGÅTE hat geschrieben:Du siehst doch aber selber das DU bei php MCRYPT_RIJNDAEL_128 nutzt und in PB 256 angegeben hast ...
Beliebter Fehler. MCRYPT_RIJNDAEL_128 gibt *NICHT* die Länge des Keys an! Das erfolgt an völlig anderer stelle.
Den Ausgangsbuffer dann noch als String zurückzugeben ist der größte Fehler den man machen kann! da AESEncoder BINÄR-Daten zurück gibt!
Oh, keine Angst, dafür benutz ich Base64Encoder
Es wäre bei solchen Sachen immer erst besser im Frage-Forum zu fragen anstatt immer gleich PB zu verurteilen!
Ich hab jetzt ca. 700 Zielen PHP-Code und ca. 900 Zeilen PB-Code - und der funktioniert nach dieser anpassung
aber php-datei
Code: Alles auswählen
$datei = fopen("c.txt","r");
$key=fread($datei, 16);
$vec=fread($datei,16);
$c1=fread($datei, 99);
fclose($datei);
echo bin2hex($key)."<br>";
echo bin2hex($vec)."<br>";
echo bin2hex($c1)."<br>";
echo strlen($c1)."<br>";
$cipher = mcrypt_module_open(MCRYPT_RIJNDAEL_128, '', MCRYPT_MODE_CBC, '');
if (mcrypt_generic_init($cipher, $key, $vec) != -1)
{
$text = mdecrypt_generic($cipher,$c1 );
mcrypt_generic_deinit($cipher);
echo $text."<br>";
}
mcrypt_module_close($cipher);
die datei "c.txt" wird hiermit erzeugt:
Code: Alles auswählen
; Sollte im Ascii-Modus kompiliert werden
;
; 012345678901234501234567890123450123456789012345
String$ = "The quick brown fox jumped over the lazy dog"
a=Len(string$)
; die korrekturzeile
; a=((a+15)>>4)<<4
*m=AllocateMemory(1024)
PokeS(*m,string$)
Debug "a:"+Str(a)
Debug Len(string$)
*CipheredString = AllocateMemory(Len(String$)+1) ; Platz für den null-terminierten String
*DecipheredString = AllocateMemory(Len(String$)+1) ; mit seiner abschließenden Null (ASCII-Modus)
If AESEncoder(*m, *CipheredString,a, ?Key, 128, ?InitializationVector,#PB_Cipher_CBC)
Debug "Ciphered: "+PeekS(*CipheredString)
Debug Len(PeekS(*CipheredString))
CreateFile(1,"c.txt")
WriteData(1,?key,16)
WriteData(1,?InitializationVector,16)
WriteData(1,*CipheredString,a)
Debug Hex(Asc(Right(PeekS(*cipheredstring),1)));
Debug Len(string$)
Debug Len(PeekS(*CipheredString))
closefile(1)
EndIf
DataSection
Key:
Data.s "1234567890123456"
InitializationVector:
Data.s "1234567890123456"
endDataSection
getestet mit XAMPP