InnoDB?
Rick Langschultz
rlangschultz at cox.net
Sat Oct 16 03:20:55 UTC 2004
Thank you for the reply. I understand the reasoning behind your
response. My company and I were thinking about storing the numbers
permanently but I guess that will not be a good idea. There is a
firewall being deployed also. However, I do see the point.
-----Original Message-----
From: mos [mailto:mos99 at fastmail.fm]
Sent: Friday, October 15, 2004 10:19 PM
To: mysql at lists.mysql.com
Subject: Re: InnoDB?
At 09:45 PM 10/15/2004, you wrote:
>Can I safely store multiple customer credit card numbers in a table
that
>is InnoDB, if I use an Encrypt() to encrypt the number and then decrypt
>the number? The site will have a shared SSL cert on it. Please give me
>tips.
No. The Encrypt function is too weak. AES_Encrypt/AES_Decrypt or
DES_Encrypt/DES_Decrypt are stronger. However I would strongly recommend
that credit card numbers not be permanently stored in the table. SQL
commands can appear in a log file, complete with the password. So if
someone gets the log file, he can get to crack your credit cards quite
easily. The alternative would be to use an encryption algorithm native
to
a programming language like PHP or C++ etc., so there would be no record
of
it in any log file. You encrypt/decrypt after you have retrieved the
data
from the table. But this isn't foolproof either because the password
will
have to be entered manually when the application runs, which may rule
this
method out if it is a webserver.
The best way is not to store the credit card number at all, but store
the
hash instead. Use something like MD5 to create a checksum of the credit
card number and store that. You could then use it to determine if the
credit card had been previously used, but there is no (easy) way to
retrieve the original credit card number.
Mike
--
MySQL General Mailing List
For list archives: http://lists.mysql.com/mysql
To unsubscribe:
http://lists.mysql.com/mysql?unsub=rlangschultz@cox.net
More information about the fedora-list
mailing list