two way encryption
| From: | Justin French | Date: | Mon, 15 Jul 2002 02:27:35 +0000 |
| Subject: | two way encryption | ||
| Groups: | php.general | ||
| Request: | Send a blank email to php-general+get-107656@lists.php.net to get a copy of this message | ||
Hi all,
I'm looking at a way of encrypting AND decrypting a string (cc#) with a key.
I plan to store the key in a file outside the docroot, and have asked the
ISP for as much advice as possible to protect the key file.
Anyway, since it needs to be encrypted and decrypted with a key, I obviously
can't use the old faithfull md5(), and from my understanding of the manual,
crypt() is also one-way.
Then I found mcrypt_encrypt() and mcrypt_decrypt().
Paraphrasing the samples in the php manual, does the below code achieve what
I want, assuming that the key would usually be stored in a separate file
outside the docroot?
<?
$iv = mcrypt_create_iv (mcrypt_get_iv_size (MCRYPT_RIJNDAEL_256,
MCRYPT_MODE_ECB), MCRYPT_RAND);
$key = "This is a very secret key";
$text = "11112222333344445555";
echo "plain string: {$text}<BR>";
$crypttext = mcrypt_encrypt (MCRYPT_RIJNDAEL_256, $key, $text,
MCRYPT_MODE_ECB, $iv);
echo "encoded string: {$crypttext}<BR>";
$dectext = mcrypt_decrypt (MCRYPT_RIJNDAEL_256, $key, $crypttext,
MCRYPT_MODE_ECB, $iv);
echo "decoded string: {$dectext}<BR>";
?>
I'm getting the following error using 4.1.1:
"Fatal error: Call to undefined function: mcrypt_create_iv() in
/usr/local/apache/htdocs/tests/enc.php on line 3"
Which is confusing, given that the manual says mcrypt_create_iv() is
available in PHP 4.
Any ideas / contributions / pointers?
Justin French