PostgreSQL extension to generate SHA256-CRYPT and SHA512-CRYPT password hashes
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
expected
sql
.gitignore
LICENSE.md
META.json
Makefile
README.md
sha256-crypt.c
sha256.h
sha512-crypt.c
sha512.h
shacrypt.c
shacrypt.control

README.md

postgres-shacrypt

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.

Usage

 =# 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

Functions

sha256_crypt(key text, salt text) RETURNS text

Generate SHA256-CRYPT hash for key with salt.

sha512_crypt(key text, salt text) RETURNS text

Generate SHA512-CRYPT hash for key with salt.

Installation

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