On Sep 17, 2010, at 7:08 AM, Tompkins Neil wrote:

> Hi
> 
> Why when I run the command (MySQL 5.1) SELECT SHA1('abc'); is it returned as
> a binary value and not a string value ?


If you mean, why is it a binary rather than a nonbinary (character) string,
that's true of most of the encryption or compression functions in 5.1. This was 
changed
in 5.5. http://dev.mysql.com/doc/refman/5.5/en/encryption-functions.html says:

"
Many encryption and compression functions return strings for which the result 
might contain arbitrary byte values. If you want to store these results, use a 
column with a VARBINARY or BLOB binary string data type. This will avoid 
potential problems with trailing space removal or character set conversion that 
would change data values, such as may occur if you use a nonbinary string data 
type (CHAR,VARCHAR, TEXT).

Some encryption functions return strings of ASCII characters: MD5(), 
OLD_PASSWORD(), PASSWORD(), SHA(),SHA1(). As of MySQL 5.5.3, their return value 
is a nonbinary string that has a character set and collation determined by the 
character_set_connection and collation_connection system variables. Before 
5.5.3, these functions return binary strings. The same change was made for 
SHA2() in MySQL 5.5.6.
"

-- 
Paul DuBois
Oracle Corporation / MySQL Documentation Team
Madison, Wisconsin, USA
www.mysql.com


--
MySQL General Mailing List
For list archives: http://lists.mysql.com/mysql
To unsubscribe:    http://lists.mysql.com/mysql?unsub=arch...@jab.org

Reply via email to