mysqlsha2

MySQL SHA2 function does not appear to work


I'm using MySql 5.5.32 and trying to reproduce some code in a stored procedure that we have in the business layer so I can set passwords for people using sql. It appears that there is something wrong with the SHA2 function though, but maybe I'm missing something:

SELECT length(SHA2("bob", 512))

Returns 128. Shouldn't it be 64?

SELECT length(SHA2("bob", 256))

Which returns 64, so it appears that either I missing something, or there is a bug in SHA2. Any ideas?


Solution

  • Comment was correct, even though the docs say that it returns binary string, it returns hex encoded string. To get the correct length use:

    SELECT length(unhex(SHA2("bob", 512)));