If all you need is some generic encryption that doesn't require mcrypt, you 
might want to take a look at a crypto extension I wrote called 
cryptopp-php. It does everything that the mcrypt extension does and might 
be a touch easier to use as far as syntax and such goes. (Plus, it works on 
Windows if you're into that sort of thing.) It's fairly stable at the 
moment, and doesn't have the memory allocation problems.

See http://www.tutorbuddy.com/software/, and 
http://www.tutorbuddy.com/software/cryptopp/ for the manual.

(I hate the shameless plugging, but the more people who use my extension the 
easier it is for me to debug...)

J


Purushotham Komaravolu wrote:

> Hi,
>  Thanks for the prompt answer. But I am still getting the same error.
> 
> /////////////////////////////////////////////////////
> original: meet at secret place
> encrypted: d40d72f1b224b9bf86a7dbc52402c1d02a5cf90adb9050f0
> 
> Warning: mcrypt_generic_init: Memory allocation error in
> 
/mount/marsellus/gwolfe/puruclient/staging/vhosts/partnersdev.sec.yaga.com/h
> tml/time/cancelsubscription/new.php on line 29
> 
> Warning: mdecrypt_generic(): 2 is not a valid MCrypt resource in
> 
/mount/marsellus/gwolfe/puruclient/staging/vhosts/partnersdev.sec.yaga.com/h
> tml/time/cancelsubscription/new.php on line 30
> 
> Warning: mcrypt_generic_end(): 2 is not a valid MCrypt resource in
> 
/mount/marsellus/gwolfe/puruclient/staging/vhosts/partnersdev.sec.yaga.com/h
> tml/time/cancelsubscription/new.php on line 31
> decrypted:
> 
> 
> ///////////////////////////////////////////
> 
> 
> Regards,
> 
> Purushotham Komaravolu
> Software Engineer
> Yaga, Inc. - "advanced payment services"
> Direct: 415-901-7343
> Fax: 415-901-1586
> http://www.yaga.com
> 
> 
> 
> ----- Original Message -----
> From: "Tech Support" <[EMAIL PROTECTED]>
> To: "Purushotham Komaravolu" <[EMAIL PROTECTED]>
> Sent: Tuesday, July 30, 2002 11:34 AM
> Subject: Re: [PHP] mcrypt
> 
> 
>> Rather than tease you with hints I'll give you some working code ;-)
>>
>> Documentation for practical usage of mcrypt is weak. I agree.
>>
>> <?
>> // crypto.inc
>> $key = "secret key crap";
>>
>> function hex2bin($data)
>> {
>>     $len = strlen($data);
>>     return pack("H" . $len, $data);
>> }
>>
>> function encrypt($string, $key)
>> {
>>      // version 2.4.x of lib mcrypt
>>      $td = mcrypt_module_open (MCRYPT_TripleDES, "", MCRYPT_MODE_ECB,
>>      ""); $iv = mcrypt_create_iv (mcrypt_enc_get_iv_size ($td),
>>      MCRYPT_RAND); mcrypt_generic_init ($td, $key, $iv);
>>      $crypted = mcrypt_generic ($td, $string);
>>      mcrypt_generic_end ($td);
>>      return bin2hex($crypted);
>> }
>>
>> function decrypt($string, $key)
>> {
>>      //version 2.4.x of lib mcrypt
>>      $string = hex2bin($string);
>>      $td = mcrypt_module_open (MCRYPT_TripleDES, "", MCRYPT_MODE_ECB,
>>      ""); $iv = mcrypt_create_iv (mcrypt_enc_get_iv_size ($td),
>>      MCRYPT_RAND); mcrypt_generic_init ($td, $key, $iv);
>>      $decrypted = mdecrypt_generic ($td, $string);
>>      mcrypt_generic_end ($td);
>>      return trim($decrypted);
>> }
>> ?>
>>
>>
>> usage:
>> <?
>> include ("path/to/crypto.inc");
>> $secret = "meet at secret place";
>> $encrypted = encrypt($secret, $key);
>> print "original: " . $secret . "<br>";
>> print "encrypted: " . $encrypted . "<br>";
>> $decrypted = decrypt($encrypted, $key);
>> print "decrypted: " . $decrypted . "<br>";
>> ?>
>>
>> Note: if you are encrypting really secret crap like credit card numbers
>> or something of that nature then NEVER include the key anywhere in your
>> code. Make a form where you have to type it in or something in order to
>> display the results.
>>
>>
>> Jim Grill
>> Support
>> Web-1 Hosting
>> http://www.web-1hosting.net
>> ----- Original Message -----
>> From: "Purushotham Komaravolu" <[EMAIL PROTECTED]>
>> To: <[EMAIL PROTECTED]>; <[EMAIL PROTECTED]>
>> Sent: Tuesday, July 30, 2002 12:52 PM
>> Subject: [PHP] mcrypt
>>
>>
>>         Hello,
>>           I am getting some odd errors trying to get an encrypt/decrypt
>> process to
>>       work. Looking at the manual examples and some other literature, I
> have
>> tried
>>       the two approaches listed below. For each, I get a sometimes-works,
>>       sometimes fails result. The manual entry has a string of user notes
>> with
>>       problem like mine, but I still have problems.
>>
>>
>>
>>       Server API Apache
>>
>>
>>
>>       mcrypt
>>             mcrypt support enabled
>>             version 2.4.x
>>             Supported ciphers twofish rijndael-128 rijndael-192
> rijndael-256
>>       saferplus rc2 xtea serpent safer-sk64 safer-sk128 cast-256 loki97
> gost
>>       threeway cast-128 des tripledes enigma arcfour panama wake
>>             Supported modes ofb cfb nofb cbc ecb stream
>>
>>
>>       --]
>>
>>
>>
>>       The first attempt used the following code:
>>
>>
>>       -->
>>       <?php
>>           $key = "this is a secret key";
>>           $input = "Let us meet at 9 o'clock at the secret place.";
>>
>>
>>           $td = mcrypt_module_open ('tripledes', '', 'ecb', '');
>>           $iv = mcrypt_create_iv (mcrypt_enc_get_iv_size ($td),
>> MCRYPT_RAND);
>>           mcrypt_generic_init ($td, $key, $iv);
>>           $encrypted_data = mcrypt_generic ($td, $input);
>>           $decrypted_data = mdecrypt_generic ($td, $encrypted_data);
>>           mcrypt_generic_end ($td);
>>
>>
>>         echo "key:
>>
>>
> 
$key<br>input:$input<br>encrypted:$encrypted_data<br>decrypted:$decrypted_da
>>       ta";
>>       ?>
>>       --]
>>
>>
>>       This resulted, at first, in "key: this is a secret key
>>       input:Let us meet at 9 o'clock at the secret place.
>>       encrypted:\ºþêTÏ'áz(v¹FýaõFËU³æç SäÇÚÖzßù5Qì<±_T-:Í
>>       decrypted:Let us meet at 9 o'clock at the secret place."
>>
>>
>>       BUT after I refreshed/reloaded a couple of times, I got this:
>> "Warning:
>>       mcrypt_generic_init: Memory allocation error in
>>       /home/pndrdrm001/www/administrator/crypt.php on line 64
>>
>>
>>       Warning: 1 is not a valid MCrypt resource in
>>       /home/pndrdrm001/www/administrator/crypt.php on line 65
>>
>>
>>       Warning: 1 is not a valid MCrypt resource in
>>       /home/pndrdrm001/www/administrator/crypt.php on line 66
>>
>>
>>       Warning: 1 is not a valid MCrypt resource in
>>       /home/pndrdrm001/www/administrator/crypt.php on line 67
>>       key: this is a secret key
>>       input:Let us meet at 9 o'clock at the secret place.
>>       encrypted:
>>       decrypted: "
>>
>>
>>       There were no changes to the code.
>>
>>
>>
>>       The second try used the following:
>>
>>
>>       In file 1, the functions:
>>       -->
>>       <?php
>>
>>
>>        function my_encrypt($sString)
>>        {
>>         GLOBAL $sCryptoKey;
>>
>>
>>         $iIV = mcrypt_create_iv (mcrypt_get_iv_size(MCRYPT_RIJNDAEL_256,
>>       MCRYPT_MODE_ECB), MCRYPT_RAND);
>>
>>
>>         $sEncrypted = mcrypt_encrypt(MCRYPT_RIJNDAEL_256, $sCryptoKey,
>> $sString,
>>       MCRYPT_MODE_ECB, $iIV);
>>
>>
>>         return($sEncrypted);
>>        } // End function my_encrypt
>>
>>
>>        function my_decrypt($sString)
>>        {
>>         GLOBAL $sCryptoKey;
>>
>>
>>         $iIV = mcrypt_create_iv(mcrypt_get_iv_size(MCRYPT_RIJNDAEL_256,
>>       MCRYPT_MODE_ECB), MCRYPT_RAND);
>>
>>
>>         $sDecrypted = mcrypt_decrypt(MCRYPT_RIJNDAEL_256, $sCryptoKey,
>> $sString,
>>       MCRYPT_MODE_ECB, $iIV);
>>
>>
>>         return(trim($sDecrypted));
>>
>>
>>        } // End function my_decrypt
>>       ?>
>>       --]
>>       and in file 2, the main page:
>>       -->
>>       <?php
>>         include "cryption.php";
>>         $sCryptoKey = "key";
>>         $input = "test";
>>         $encrypted = my_encrypt($input);
>>         $decrypted = my_decrypt($encrypted);
>>
>>
>>         echo "key:
>>
>>
> 
$sCryptoKey<br>input:$input<br>encrypted:$encrypted<br>decrypted:$decrypted"
>>       ;
>>
>>
>>
>>       ?>
>>       --]
>>
>>
>>       This resulted in "key: key
>>       input:test
>>       encrypted: &foUÝø§ª~RM¡°Kz à¼O¼¿rw"x@nÉ
>>       decrypted:test " the first time, but then I got "Fatal error:
>> generic_init
>>       failed in /home/pndrdrm001/www/administrator/cryption.php on line
>>       9"
>> on the
>>       second refresh.
>>
>>
>>
>>       Is there a missing call to free resources, or something? What can
>>       be
>> done?
>>
>>
>>       Thanks!
>>       Regards,
>>
>>       Puru
>>


-- 
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to