![]() |
String verschlüsseln in PHP
hallo, ich habe im internet eine funktion gefunden wie man in php einen string entschlüsseln kann (stackoverflow.com/questions/14995052/how-to-sync-encryption-between-delphi-and-php-using-dcpcrypt).
leider habe ich kein beispiel gefunden wie man denn einen string verschlüsseln kann. ich bekomme das selbst leider nicht hin dass ein string verschlüsselt wird. kann mir wer helfen? |
AW: String verschlüsseln in PHP
Im PHP-Script steht
Code:
, das Gegenstück dürfte demnach vermutlich
mcrypt_decrypt
Code:
heißen. Eine kurze Google-Suche führt einen dann z.B.
mcrypt_encrypt
![]() |
AW: String verschlüsseln in PHP
wenn ich folgende zwei zeilen abändere kommt leider ein anderers ergebnis heraus as das gewünschte.
leider bin ich eine niete in php und kenne mich da nicht aus:
Code:
function encrypt_SO($str, $key) {
//$ivsize = mcrypt_get_iv_size(MCRYPT_DES, MCRYPT_MODE_CBC); //$blocksize = mcrypt_get_block_size(MCRYPT_DES, MCRYPT_MODE_CBC); $keysize = mcrypt_get_key_size(MCRYPT_DES, MCRYPT_MODE_CBC); // Need to use the SAME IV as the Delphi function. By default // this is (0,0,0,0,0,0,0,0) encrypted using ECB mode and gives the // following bytes: $ivbytes = array(72, 163, 99, 62, 219, 111, 163, 114); $iv = implode(array_map("chr", $ivbytes)); $enc = base64_encode($str); // aenderung hier: _ENcode $k = mhash(MHASH_SHA1, $key); $dec = mcrypt_encrypt(MCRYPT_DES, substr($k, 0, $keysize), $enc, MCRYPT_MODE_CBC, $iv); // aenderung hier: _ENcrypt $pad = ord($dec[strlen($dec) - 1]); return substr($dec, 0, strlen($dec) - $pad); } $dec = 'this is a test'; $enc = encrypt_SO($dec, 'test'); echo "$enc\n"; |
AW: String verschlüsseln in PHP
Ich kenne mich mit mcrypt auch nicht aus, aber auf der verlinkten Seite stehen doch Beispiele. Hast Du es damit mal versucht?
|
AW: String verschlüsseln in PHP
das habe ich. folgenden code habe ich bisher. das ergebnis ist aber leider noch nicht richtig.
Code:
Es funktioniert nun fast.
function encrypt_SO($str, $key) {
$keysize = mcrypt_get_key_size(MCRYPT_DES, MCRYPT_MODE_CBC); $ivbytes = array(72, 163, 99, 62, 219, 111, 163, 114); $iv = implode(array_map("chr", $ivbytes)); $k = mhash(MHASH_SHA1, $key); $dec = mcrypt_encrypt(MCRYPT_DES, substr($k, 0, $keysize), $str, MCRYPT_MODE_CBC, $iv); return base64_encode($dec); } das ergebnis welche ich brauche ist WRaG/8xlxqqcTAJ5UAk4DA== ich habe bisher aber nur WRaG/8xlxqouYZoyvnidXg== |
AW: String verschlüsseln in PHP
Hier sind meine bescheidenen Kenntnisse leider auch am Ende :(
|
AW: String verschlüsseln in PHP
kein problem =)
"negaH" scheint mir ein genie in sachen kryptographie zu sein. ich hoffe er liest diesen beitrag. |
AW: String verschlüsseln in PHP
Hallo,
sehe ich das richtig, dass du die PHP-Funktion aus dem verlinkten StackOverflow-Thread haben willst, nur rückwärts? Zu deinem ersten Versuch: du musst nicht nur En- und Decrypt umtauschen, sondern auch die Reihenfolge der Operationen. Also erst das DES-Encrypt und dann base64-Encode. Den gleichen Vorgang eben rückwärts. Bei deinem zweiten Beispiel sieht man deutlich, dass die Strings sich nicht komplett unterscheiden. Ich vermute, hier wird was mit dem Padding nicht stimmen. Liebe Grüße, Valentin |
AW: String verschlüsseln in PHP
ok. das ist erledigt.
im zweiten beispiel wird erst mcrypt_encrypt und dann base64_encode am ende aufgerufen. was ist denn das padding? ist das die iv-byte reihenfolge? |
AW: String verschlüsseln in PHP
ich habe nun herausgefunden, dass wenn ich beide werte (WRaG/8xlxqqcTAJ5UAk4DA== und WRaG/8xlxqouYZoyvnidXg==) entschlüssle, der selbe wert am ende herauskommt.
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 14:33 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz