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