php.de

Zurück   php.de > Webentwicklung > PHP-Fortgeschrittene

PHP-Fortgeschrittene Arbeiten mit PHP ohne Einschränkungen

Antwort
 
LinkBack Themen-Optionen Thema bewerten
Alt 29.10.2008, 23:42   #1 (permalink)
Benutzer
 
Registriert seit: 09.08.2008
Beiträge: 35
Zender befindet sich auf einem aufstrebenden Ast
Standard Schnelle symetrische Verschlüsselung

Hallo Leute,

ich bin dabei eine symmetrische Verschlüsselung mit den php-eigenen Funktionen zu erstellen. Mein bisheriger Code für die Verschlüsselung:

PHP-Code:
        $td mcrypt_module_open(MCRYPT_DES''MCRYPT_MODE_ECB'');
        
$iv mcrypt_create_iv(8MCRYPT_DEV_RANDOM);
        
$key substr(md5(Config::GetValue("SymmetricKey")),5,8);
        
$key substr(md5(Config::GetValue("SymmetricKey")),5,8);
        
mcrypt_generic_init($td$key$iv);
        
$encrypted mcrypt_generic($td$plainText);
        
mcrypt_generic_deinit($td); 
die Entschlüsselung analog dazu nur eben mdecrypt_generic.
Nur dauert diese Art der Verschlüsselung extrem lange. Für ein plainText mit ca 10 Zeichen braucht der Vorgang mehrere Sekunden.

Was für Algorithmen gibt es, die schneller verschlüsseln/entschlüsseln? Ich finde in der Doku keine Auflistung etc.

Gruß, Zender
Zender ist offline   Mit Zitat antworten
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 30.10.2008, 09:45   #2 (permalink)
Erfahrener Benutzer
 
Registriert seit: 16.07.2005
Beiträge: 1.004
PHP-Kenntnisse:
Fortgeschritten
brian johnson wird schon bald berühmt werden
Standard

bei mir dauert das unter 0,03 sekunden, deswegen kann ich da nur vermuten, das etwas anderes bei dir schiefläuft. propier den code mal ohne dein projekt im hintergrund:

PHP-Code:
<?php
   
/* Open the cipher */
   
$td mcrypt_module_open('rijndael-256',  '',  'ofb',  '');

   
/*  Create the IV and determine the keysize length, use MCRYPT_RAND
    * on  Windows instead */
   
$iv mcrypt_create_iv(mcrypt_enc_get_iv_size($td), MCRYPT_DEV_RANDOM);
   
$ks  mcrypt_enc_get_key_size($td);

   
/*  Create key */
   
$key substr(md5('very secret  key'), 0$ks);

    
/* Intialize encryption */
    
mcrypt_generic_init($td$key$iv);

   
/*  Encrypt data */
   
$encrypted  mcrypt_generic($td'This is very  important data');

   
/* Terminate encryption handler */
   
mcrypt_generic_deinit($td);

   
/*  Initialize encryption module for decryption */
   
mcrypt_generic_init($td$key$iv);

   
/*  Decrypt encrypted string */
   
$decrypted  mdecrypt_generic($td$encrypted);

    
/* Terminate decryption handle and close  module */
   
mcrypt_generic_deinit($td);
   
mcrypt_module_close($td);

   
/* Show  string */
   
echo trim($decrypted) .  "\n";
?>
p.s.: DES wird nicht mehr als sicher angesehen, nimm rijndal (AES), blowfish oder twofish. und das der schlüssel nicht sicher ist, muss ich dir ja nicht sagen, oder
__________________
PHP4?!?>>>Aktuelle PHP Version: 5.2.11 || 5.3.0
Suse 11.2 *vorfreude*
brian johnson ist offline   Mit Zitat antworten
Alt 03.11.2008, 23:16   #3 (permalink)
Benutzer
 
Registriert seit: 09.08.2008
Beiträge: 35
Zender befindet sich auf einem aufstrebenden Ast
Standard

ok, danke für deinen Beitrag. Es scheint tatsächlich an der Konfiguration des Servers zu liegen, auch dein geposteter Original-Code brauchgt bei mir sehr lange (> 2 min, gibt aber das korrekte Ergebnis aus). Kann es sein, dass spezielle Module schon vorher geladen sein müssen, oder was kann diese kleinen Operationen so sehr verzögern?
Zender ist offline   Mit Zitat antworten
Alt 04.11.2008, 18:29   #4 (permalink)
Erfahrener Benutzer
 
Registriert seit: 16.07.2005
Beiträge: 1.004
PHP-Kenntnisse:
Fortgeschritten
brian johnson wird schon bald berühmt werden
Standard

wie schauts aus mit dem php time_limit ? ist dies kleiner als 2 minuten? wenn ja, würde ich tippen, das das mcrypt modul spinnt.

kannst du den obigen testcode mal zeilenweise von oben nach unten auskommentieren um zu sehen obs ein problem mit einer bestimmten funktion gibt?
__________________
PHP4?!?>>>Aktuelle PHP Version: 5.2.11 || 5.3.0
Suse 11.2 *vorfreude*
brian johnson ist offline   Mit Zitat antworten
Alt 04.11.2008, 19:26   #5 (permalink)
Benutzer
 
Registriert seit: 09.08.2008
Beiträge: 35
Zender befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von brian johnson Beitrag anzeigen
wie schauts aus mit dem php time_limit ? ist dies kleiner als 2 minuten? wenn ja, würde ich tippen, das das mcrypt modul spinnt.

kannst du den obigen testcode mal zeilenweise von oben nach unten auskommentieren um zu sehen obs ein problem mit einer bestimmten funktion gibt?
Das Problem liegt in dieser Zeile
PHP-Code:
$iv mcrypt_create_iv(mcrypt_enc_get_iv_size($td), MCRYPT_DEV_RANDOM); 
Diese Funktion braucht extrem lange zur Ausführung. Die Zeit überschreitet auch den per set_time_liimit gesetzten Wert, ohne das es zu einer Exception kommt.

Wodurch kann das begründet sein?
Zender ist offline   Mit Zitat antworten
Alt 04.11.2008, 19:30   #6 (permalink)
Erfahrener Benutzer
 
Benutzerbild von robo47
 
Registriert seit: 03.09.2004
Beiträge: 11.358
PHP-Kenntnisse:
Fortgeschritten
robo47 ist ein wunderbarer Anblickrobo47 ist ein wunderbarer Anblickrobo47 ist ein wunderbarer Anblickrobo47 ist ein wunderbarer Anblickrobo47 ist ein wunderbarer Anblickrobo47 ist ein wunderbarer Anblickrobo47 ist ein wunderbarer Anblick
Standard

Du setzt aber nicht zufällig Windows ein und hast
PHP-Code:
 /*  Create the IV and determine the keysize length, use MCRYPT_RAND
    * on  Windows instead */ 
weil /dev/random wird man unter windows überlicherweise nicht vorfinden
überlesen ?
robo47 ist gerade online   Mit Zitat antworten
Alt 04.11.2008, 19:35   #7 (permalink)
Benutzer
 
Registriert seit: 09.08.2008
Beiträge: 35
Zender befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von robo47 Beitrag anzeigen
Du setzt aber nicht zufällig Windows ein und hast
PHP-Code:
 /*  Create the IV and determine the keysize length, use MCRYPT_RAND
    * on  Windows instead */ 
weil /dev/random wird man unter windows überlicherweise nicht vorfinden
überlesen ?
nein, das ganze läuft auf einem Linux-BS

EDIT: Es lag tatsächlich an MCRYPT_DEV_RANDOM, wenn ich MCRYPT_RAND verwende, klappt es gut.

Geändert von Zender (04.11.2008 um 20:25 Uhr).
Zender ist offline   Mit Zitat antworten
Alt 04.11.2008, 23:53   #8 (permalink)
Benutzer
 
Registriert seit: 09.08.2008
Beiträge: 35
Zender befindet sich auf einem aufstrebenden Ast
Standard

Hm, ich bekomme allerdings Probleme bei der Encodierung/Dekodierung wenn ich ein anderes Modul als DES nutze:

mit
PHP-Code:
$td mcrypt_module_open(MCRYPT_DES''MCRYPT_MODE_ECB''); 
bekomme ich ein richtiges Ergebnis bei der Dekodierung.

mit
PHP-Code:
 $td mcrypt_module_open('twofish''''cbc'''); 
allerdings nicht, das entschlüsselte Wort besteht dann nur noch aus Symbolzeichen, obwohl alle anderen Schritte exakt gleich geblieben sind...
Zender ist offline   Mit Zitat antworten
Antwort


Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
[Erledigt] Problem mit Script für schnelle Notizen perpicx PHP Tipps 2008 4 09.10.2008 12:11
Verschlüsselung? Wozu denn? phpdummi Off-Topic Diskussionen 20 13.08.2008 00:28
Was ist das für eine Verschlüsselung? Neo2k3 PHP Tipps 2006 12 09.02.2006 18:14
schnelle alternativen tomson PHP-Fortgeschrittene 2 06.10.2005 11:32
Bitte um schnelle hilfe TaStEn PHP Tipps 2005-2 1 03.09.2005 20:46
Verschlüsselung PHP Tipps 2005-2 13 07.06.2005 18:06
Verschlüsselung der Datenbank PHP Tipps 2005 18 18.05.2005 09:45
RSA verschlüsselung, suche Lehrer. c01001 Beitragsarchiv 9 29.11.2004 02:22
[Erledigt] MD5 Verschlüsselung! PHP Tipps 2004-2 9 09.11.2004 13:41
Verschlüsselung mit php_mcrypt bringt Fehlermedlung PHP-Fortgeschrittene 6 05.11.2004 18:16
MD5 verschlüsselung... Beatbox Datenbanken 3 24.09.2004 19:54
[Erledigt] Passwort verschlüsselung Datenbanken 5 06.09.2004 10:31
SESSION SCHNELLE HILFE BITTE! PHP Tipps 2004 7 02.08.2004 13:14
Pfadproblem! Brauche schnelle Hilfe vom Profi! PHP-Fortgeschrittene 8 31.07.2004 11:28
Primitive (kurze) Frage => schnelle Antwort ? PHP Tipps 2004 2 17.06.2004 18:06

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
php verschlüsselungsmethoden, php symmetrische verschlüsselung, symmetrische verschlüsselung php, schnelle verschlüsselung, php verschlüsselung, verschlüsselung php, php mcrypt_rand, php schnelle verschlüsselung, verschlüsselungsmethoden php, verschlüsselungsalgorithmus php, suche verschlüsselung für php und windows, php string symmetrisch verschlüsseln, php encryption module, php symetische verschlüsselung, twofish php, mcrypt_create_iv dauert, symmetrische verschlüsselung php -mycrypt, twofish php class, rsa verschlüsselung handler -händler, kurze verschlüsselung php

Alle Zeitangaben in WEZ +1. Es ist jetzt 20:46 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2010, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum