PHP lacks a build-in function to encrypt and decrypt large files. `openssl_encrypt()` can be used to encrypt strings, but loading a huge file into memory is a bad idea.

So we have to write a userland function doing that. This example uses the symmetric AES-128-CBC algorithm to encrypt smaller chunks of a large file and writes them into another file.

# Encrypt Files

'; echo $enc_data; echo ''; fwrite( $fpOut, $enc_data ); } fclose( $fpIn ); } else { $error = TRUE; } fclose( $fpOut ); } else { $error = TRUE; } return $error ? FALSE : $dest; } ?>

# Decrypt Files

To decrypt files that have been encrypted with the above function you can use this function.

$enc_data = base64_encode( openssl_encrypt( $data, $method, $pass, true, $iv ) );
$dec_data = openssl_decrypt( base64_decode( $enc_data ), $method, $pass, true, $iv );

Source: http://stackoverflow.com/documentation/php/5794/cryptography/25499/

Source at StackOverflow does not exist anymore.

See PHP code of this page.