openssl_encrypt
ve openssl_decrypt
: PHP 5.3 gerçekten kullanımı kolay yeni bir şifreleme yöntemi tanıttı. Burada iyi belgelenmiş değil, bu yüzden burada basit bir örnek:
$textToEncrypt = "My super secret information.";
$encryptionMethod = "AES-256-CBC"; // AES is used by the U.S. gov't to encrypt top secret documents.
$secretHash = "25c6c7ff35b9979b151f2136cd13b0ff";
//To encrypt
$encryptedMessage = openssl_encrypt($textToEncrypt, $encryptionMethod, $secretHash);
//To Decrypt
$decryptedMessage = openssl_decrypt($encryptedMessage, $encryptionMethod, $secretHash);
//Result
echo "Encrypted: $encryptedMessage <br>Decrypted: $decryptedMessage";
Katı ve hızlı çünkü ben 256-AES seçti. Bu üst gizli belgeleri şifrelemek için ABD gov't tarafından kabul oldu. Bu hızlı bir makine ve yazılım düşünüyor oluyor. Burada mevcut şifreleme yöntemlerinin bir listesi:
IMPORTANT UPDATE!!!
Teşekkürler PHP 5.3.3> Bu fonksiyon biraz daha güvenli hale getirir, yeni bir parametre olduğunu işaret için Hobo ve Jorwin.
Jorwin his comment bu linki başvurulan ve burada uygulanabilir bir alıntıdır:
In 5.3.3 they added a new parameter, string $iv
(initialization
vector) Real parameters are: string openssl_encrypt ( string $data ,
string $method , string $password, bool $raw_output = false, string
$iv )
$iv
eksik ise, bir uyarı verilir: "Boş bir Başlatmak Vector Kullanma (iv) potansiyel olarak güvensiz ve tavsiye edilmez".
$iv
başka bir uyarı, çok kısa ise: "geçti IV sadece 3 byte uzunluğunda, şifre \ 0 ile tam 8 bayt, dolgu bir IV bekliyor"
Aynı IV openssl_decrypt()
kullanılmalıdır