mcrypt sucks
Falls jemand bei PHP mal das Problem haben sollte, dass alle Aufrufe an die mcrypt library schrecklich langsam sind: Man kann die mcrypt* Aufrufe einfach durch openssl* Aufrufe ersetzen, natürlich inkl. Anpassen der Parameter.
Aus:
mcrypt_encrypt(MCRYPT_RIJNDAEL_128, $key, $s, MCRYPT_MODE_CFB, $iv);
Wird:
openssl_encrypt($s, ‘aes-128-cfb8′, $key, true, $iv);
Über openssl_get_cipher_methods() bekommt man die entsprechenden cipher Namen bei openssl, die leider nicht alle dokumentiert sind.
Openssl ist sogar auf System, auf denen mcrypt scheinber korrekt arbeitet, deutlich schneller.
Warum mcrypt auf einmal langsamer ist, konnte ich noch nicht rausfinden. Div. Tests haben allerdings ergeben, dass nur Aufrufe in Verbindung mit mcrypt langsam sind und es nicht an PHP selbst liegt. Getestet wurde mit Debian 6, Ubuntu 11.40, Centos 6 und Centos 5.6. Einzig unter Centos 5.6 tritt das Problem mit mcrypt nicht auf, obwohl mcrypt immer die gleiche Version war (Centos 5.6 hat noch Kernel 2.6.18 – vielleicht liegt es daran). PHP Versionen, die getestet wurden, sind: 5.1.6, 5.2.17, 5.3.8 und 5.4 (RC5).
Mcryp hatte übrigens in 2008 das letzte Update bekommen und gilt laut vieler Aussagen im Netz als veraltet und mittlerweile verbuggt. Eine Alternative wäre z.B. Botan, das aber leider (noch) keine PHP extension besitzt.
No related posts.