On 15 April 2004 10:59, [EMAIL PROTECTED] wrote:

> Im trying to implement some really simply credit card encryption...
> I know it's not perfect, but it's a stop gap measure until I do this
> properly... however... 
> 
> To Encrypt before I put into my DB, I'm using this formula...
> $encrypt = $CardNumber / ($ExpiryYear * 41.9);
> (41.9 is just a random No to help encrpt the data)
> 
> To see the correct credit card No later, I'm using this formula:
> $decrypt = $row[encryptedno] * $row[expiryyear] * 41.9;
> 
> The credit car No I'm testing with is:
> 1234123412341234
> and the Exp year is 2008
> 
> However, I keep getting this result...
> 1.2341234123412E+15
> 
> What on earth am I doing wrong?

Trying to express your credit card number as an integer or a float, instead
of a string.  On a 32-bit architecture, an integer can't hold a number that
big -- and a float can probably only express about 14 significant digits, so
that's no good either.  Subject to those restrictions, the result you're
getting is a correct floating point representation of your original number,
so your maths is fine.

You'd be better off keeping your CC number as a string and using one of the
string encodings or encryptions.

Cheers!

Mike

---------------------------------------------------------------------
Mike Ford,  Electronic Information Services Adviser,
Learning Support Services, Learning & Information Services,
JG125, James Graham Building, Leeds Metropolitan University,
Beckett Park, LEEDS,  LS6 3QS,  United Kingdom
Email: [EMAIL PROTECTED]
Tel: +44 113 283 2600 extn 4730      Fax:  +44 113 283 3211 

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

Reply via email to