Philip Thompson wrote:
> Hi all.
> 
> Here's my disclaimer: this question is solely MySQL-related - I just
> happen to be programming in PHP.
> 
> I have found some functionality which *appears* to be a bug, but I
> didn't want to report it before asking some intelligent people. I have
> this simple query:
> 
> SELECT UPPER('just a lower case string') AS `UPPER_STRING`,
> UPPER(AES_DECRYPT(AES_ENCRYPT('Bob Frapples', '1234ABCD'), '1234ABCD'))
> AS `UPPER_NAME`;
> 
> Expected result:
> 
> UPPER_STRING              UPPER_NAME
> ------------------------  ------------
> JUST A LOWER CASE STRING  BOB FRAPPLES
> 
> Real result:
> 
> UPPER_STRING              UPPER_NAME
> ------------------------  ------------
> JUST A LOWER CASE STRING  Bob Frapples
> 
> 
> There is a similar bug report <http://bugs.mysql.com/bug.php?id=28072>
> that uses LCASE instead of UPPER. But, they have the same *lack of
> desired functionality*. MySQL people say it's not a bug due to how
> binary blah blah blah. Whatever - I don't buy that. It's not working *as
> it should*. On top of that, the docs for this encrypt stuff is quite
> minimal.
> 
> My questions to you: do you think this is a bug? And... is there an
> alternative to searching on fields that are encrypted using the LIKE
> operator?

The bug report is correct. This is not a bug. The docs clearly state at
the top of the page:

   The encryption and compression functions return binary strings.

If you need a normal string, try the cast() or convert() function to
convert your binary string before comparing or using it in a function.

-Roberto

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

Reply via email to