Thread: pgcrypto : how to get SHA1(string) as a 40-char string, NOT binary string?
I have the contrib/pgcrypto installed. I want to get the 40-character hash from SHA1 Example: SELECT digest('blue', 'sha1') would be: 4c9a82ce72ca2519f38d0af0abbb4cecb9fceca9 I was surprised and disappointed to get a binary-hash back. Does anyone know how to get the regular 40-character string back from SHA1 instead of the binary-hash? (Or how to convert a binary-hash into a-z0-9 chars?)
Re: pgcrypto : how to get SHA1(string) as a 40-char string, NOT binary string?
From
Michael Fuhr
Date:
On Wed, Jul 13, 2005 at 12:45:19AM -0700, Miles Keaton wrote: > I have the contrib/pgcrypto installed. > I want to get the 40-character hash from SHA1 > > Example: SELECT digest('blue', 'sha1') would be: > 4c9a82ce72ca2519f38d0af0abbb4cecb9fceca9 > > I was surprised and disappointed to get a binary-hash back. The pgcrypto documentation does show that the return type is bytea, and it says that the function "Returns binary hash." > Does anyone know how to get the regular 40-character string back from > SHA1 instead of the binary-hash? (Or how to convert a binary-hash > into a-z0-9 chars?) Use encode(). http://www.postgresql.org/docs/8.0/static/functions-binarystring.html SELECT encode(digest('blue', 'sha1'), 'hex'); encode ------------------------------------------ 4c9a82ce72ca2519f38d0af0abbb4cecb9fceca9 (1 row) -- Michael Fuhr http://www.fuhr.org/~mfuhr/