rgbflawed
rgbflawed

Reputation: 2147

mcrypt characters causing mysql errors

I'm having trouble getting php's mcrypt function to encrypt text in a way that can be stored in my mysql database.

Here's an example of a query that doesn't work:

UPDATE mydatabase.clients SET firstname='\'å»”é¶Q' WHERE id_client=65

But if I change it to be:

UPDATE mydatabase.clients SET firstname='Test' WHERE id_client=65

Then it works. So it must be those crazy mcrypt characters throwing things off.

What do I do to my mysql database so it accepts those characters?

Upvotes: 0

Views: 586

Answers (3)

visionviper
visionviper

Reputation: 11

Make sure you are escaping the encrypted string. It's an important part to doing this right!

I've been working with MySQL and Mcrypt and I store my encrypted data and initialization vectors as binary and I escape all of these strings before they get put in a query. Works like a charm.

Upvotes: 0

erickson
erickson

Reputation: 269817

The output of a cipher is a string of bytes, not characters. You shouldn't store cipher text directly as text. Use a "binary" data type, or transform the byte string to text with something like Base-64.

Upvotes: 1

Luc Laverdure
Luc Laverdure

Reputation: 1480

Change the column type to binary instead, this may work.

Upvotes: 0

Related Questions