Re: pgcrypto : how to get SHA1(string) as a 40-char string, NOT binary string?

From: Michael Fuhr <mike(at)fuhr(dot)org>
To: Miles Keaton <mileskeaton(at)gmail(dot)com>
Cc: pgsql-general(at)postgresql(dot)org
Subject: Re: pgcrypto : how to get SHA1(string) as a 40-char string, NOT binary string?
Date: 2005-07-13 13:07:56
Message-ID: 20050713130756.GA93624@winnie.fuhr.org
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-general

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/

In response to

Browse pgsql-general by date

  From Date Subject
Next Message Richard Huxton 2005-07-13 13:09:34 Re: 7.4.7: strange planner decision
Previous Message Alvaro Herrera 2005-07-13 12:48:53 Re: can you tell me how to use rollback work in 'pgsql' function? and give me a exsample?