Thread: Inserting encrypted data into postgres

Inserting encrypted data into postgres

From
"K Old"
Date:
Hello,

I am trying to load encrypted data (a credit card number encrypted by the
Crypt::Twofish perl library) and postgres won't accept the data.  I have
tried escaping each character, and nothing works.


For example a credit card number like

7384998737264839

when encrypted by Crypt::Twofish would look like

q�Օ�с.'�Ҍ�

I cannot get postgres to accept this input.  Any ideas of different
datatypes, or ways I can get it to accept this highly encrypted string?

I have several modules that encrypt the string with letters and numbers
rather than symbols, etc. like Twofish, but would love to have this solution
work.

Any help is appreciated.

Kevin
kevsurf4@hotmail.com


_________________________________________________________________
Get your FREE download of MSN Explorer at http://explorer.msn.com/intl.asp


Re: Inserting encrypted data into postgres

From
"James F. Hranicky"
Date:
"K Old" <kevsurf4@hotmail.com> wrote:
> Hello,
>
> I am trying to load encrypted data (a credit card number encrypted by the
> Crypt::Twofish perl library) and postgres won't accept the data.  I have
> tried escaping each character, and nothing works.
>
>
> For example a credit card number like
>
> 7384998737264839
>
> when encrypted by Crypt::Twofish would look like
>
> q�Օ�с.'�Ҍ�
>
> I cannot get postgres to accept this input.  Any ideas of different
> datatypes, or ways I can get it to accept this highly encrypted string?
>
> I have several modules that encrypt the string with letters and numbers
> rather than symbols, etc. like Twofish, but would love to have this solution
> work.

How about using the MIME::Base64 module?

From MIME::Base64(3) :

      use MIME::Base64;

      $encoded = encode_base64('Aladdin:open sesame');
      $decoded = decode_base64($encoded);

You could do something like this pseudo-code:

    insert into db values ("userid", encode_base64($crypted));

    ($userid, $enc_cardno) = select * from db where userid = "Bob";
    $cardno = decrypt(decode_base64($enc_cardno));

----------------------------------------------------------------------
| Jim Hranicky, Senior SysAdmin                   UF/CISE Department |
| E314D CSE Building                            Phone (352) 392-1499 |
| jfh@cise.ufl.edu                      http://www.cise.ufl.edu/~jfh |
----------------------------------------------------------------------