A PostgreSQL extension to generate SHA256-CRYPT and SHA512-CRYPT password hashes.
See https://www.akkadia.org/drepper/SHA-crypt.txt for the specification and upstream code by Ulrich Drepper.
=# CREATE EXTENSION shacrypt;
=# select sha256_crypt('clearpassword', 'somesalt');
sha256_crypt
---------------------------------------------------------
$5$somesalt$l3SlbI688JBlRS9RWFC1EwZLNJqfQKcrF3yhcbc7ffA
=# select sha256_crypt('clearpassword', '$5$rounds=10000$somesalt');
sha256_crypt
----------------------------------------------------------------------
$5$rounds=10000$somesalt$OekH6Tu7EOJIAvxKJ4Ko4bG0DxgO83gZODJLTTjXJi5
=# select sha512_crypt('clearpassword', 'somesalt');
sha512_crypt
----------------------------------------------------------------------------------------------------
$6$somesalt$dDcgWMHOtvHI6qT/Khi3uaaxXN6v4N9bnOeWFl/Y6K3pzxi/zKEhE1dAdjBybsMrfO2FU8JpFJMkQipkTaiFO0
Generate SHA256-CRYPT hash for key
with salt
.
Generate SHA512-CRYPT hash for key
with salt
.
The Makefile uses the PGXS infrastructure to find include and library files, and determine the install location.
Build and install with GNU make (possibly invoked as gmake on a non-GNU system):
$ make
$ (sudo) make install