recent encrpyt decrypt code... (problems)
| From: | Jeff Bluemel | Date: | Fri, 04 Oct 2002 05:01:53 +0000 |
| Subject: | recent encrpyt decrypt code... (problems) | ||
| Groups: | php.general | ||
| Request: | Send a blank email to php-general+get-118803@lists.php.net to get a copy of this message | ||
I've seen a few other post on this, and it sounds like there is more then
one of use that is trying this script. I've got it so that I can use the
commands, but I still get errors on the page...
here is what I have done.
I downloaded libmycrpt from
ftp://mcrypt.hellug.gr/pub/crypto/mcrypt/libmcrypt
and configured it with
the following options;
./configure \
--with-included-algos="rijndael-128 arcfour stream cbc cfb"\
--disable-posix-threads
I then reconfigured php with the --with-mcrpty option. now when I try to
run the code I get the following errors; (the php code I will repost inc
ase there are any questions)
Usage
Warning: key size is 0 in /usr/local/apache/htdocs/test.phtml on line 15
Warning: mcrypt_generic_init: Key length incorrect in
/usr/local/apache/htdocs/test.phtml on line 15
Warning: mcrypt_generic(): 1 is not a valid MCrypt resource in
/usr/local/apache/htdocs/test.phtml on line 16
Warning: mcrypt_generic_deinit(): 1 is not a valid MCrypt resource in
/usr/local/apache/htdocs/test.phtml on line 17
encrypted =
Warning: key size is 0 in /usr/local/apache/htdocs/test.phtml on line 25
Warning: mcrypt_generic_init: Key length incorrect in
/usr/local/apache/htdocs/test.phtml on line 25
Warning: mdecrypt_generic(): 2 is not a valid MCrypt resource in
/usr/local/apache/htdocs/test.phtml on line 26
Warning: mcrypt_generic_deinit(): 2 is not a valid MCrypt resource in
/usr/local/apache/htdocs/test.phtml on line 29
decrypted =
Oops they don't match
<?PHP
class encrypt_decrypt
{
var $secret;
function encrypt_class(){
$this->secret = 'this is a very long key, even too long for
the cipher';
}
Function encode($id){
$eid = $iv = 0;
$len = strlen($id);
$id = $len.'-'.$id;
$td = mcrypt_module_open(MCRYPT_TripleDES, "",
MCRYPT_MODE_ECB, "");
$key = substr($this->secret, 0, mcrypt_enc_get_key_size
($td));
$iv = pack("a".mcrypt_enc_get_iv_size($td),$iv);
mcrypt_generic_init ($td, $key, $iv);
$eid = base64_encode(mcrypt_generic ($td, $id));
mcrypt_generic_deinit($td);
return $eid;
}
Function decode($eid){
$id = $iv = 0;
$td = mcrypt_module_open (MCRYPT_TripleDES, "",
MCRYPT_MODE_ECB, "");
$key = substr($this->secret, 0, mcrypt_enc_get_key_size
($td));
$iv = pack("a".mcrypt_enc_get_iv_size($td),$iv);
mcrypt_generic_init ($td, $key, $iv);
$id = mdecrypt_generic ($td, base64_decode($eid));
$len = strtok($id,'-');
$id = substr($id,(strlen($len)+1),$len);
mcrypt_generic_deinit($td);
return $id;
}
}
?>
Usage
<?
$word = 'Hello';
$e = new encrypt_decrypt();
$encrypted = $e->encode($word);
echo "encrypted = $encrypted <br>";
$decrypted = $e->decode($encrypted);
echo "decrypted = $decrypted <br>";
if($word == $decrypted){
echo "They match <br>";
}
else{
echo "Oops they don't match <br>";
}
?>
--
Jeff Bluemel