November 2002
Intermediate to advanced
640 pages
16h 33m
English
You want to securely exchange data with another web site.
If the other web site is pulling the data from your site, put the data up on a password-protected page. You can also make the data available in encrypted form, with or without a password. If you need to push the data to another web site, submit the potentially encrypted data via POST to a password-protected URL.
The following page requires a username and password and then encrypts and displays the contents of a file containing yesterday’s account activity:
$user = 'bank';
$password = 'fas8uj3';
if (! (($_SERVER['PHP_AUTH_USER'] == $user) &&
($_SERVER['PHP_AUTH_PW'] == $password))) {
header('WWW-Authenticate: Basic realm="Secure Transfer"');
header('HTTP/1.0 401 Unauthorized');
echo "You must supply a valid username and password for access.";
exit;
}
header('Content-type: text/plain');
$filename = strftime('/usr/local/account-activity.%Y-%m-%d',time() - 86400);
$data = join('',file($filename));
$alg = MCRYPT_BLOWFISH;
$mode = MCRYPT_MODE_CBC;
$key = "There are many ways to butter your toast.";
// encrypt data
$iv = $iv = mcrypt_create_iv(mcrypt_get_iv_size($alg,$mode),
MCRYPT_DEV_URANDOM);
$ciphertext = mcrypt_encrypt($alg, $key, $data, $mode, $iv);
print base64_encode($iv.$ciphertext);Here’s the corresponding code to retrieve the encrypted page and decrypt the information:
$user = 'bank'; $password = 'fas8uj3'; $alg = MCRYPT_BLOWFISH; $mode = ...
Read now
Unlock full access