Pada tulisan yang lalu telah dibahas mengenai instalasi fitur kriptografi pada Postgresql. Pada kesempatan kali ini, akan dituliskan beberapa fungsi untuk mempersingkat fungsi yang ada. Jika menggunakan fungsi SHA1, maka sintak yang digunakan akan sangat panjang dan tidak efisien, yaitu:
encode(digest('sukses', 'sha1'), 'hex');

Fungsi diatas tersebut terlalu berbelit-belit dan panjang. Dalam beberapa bahasa pemrograman, fungsi tersebut dapat langsung dipanggil dengan menggunakan sintak:
hash_data = sha1(''sukses)

Berikut ini fungsi SHA1 yang dapat digunakan:

  • Metode Pertama

    CREATE OR REPLACE FUNCTION sha1(text) RETURNS text AS '
    SELECT
    ENCODE(DIGEST($1, ''sha1''),''hex'') AS result
    ' LANGUAGE 'SQL';

    Penggunaan:

    db=# select sha1('sukses');
    sha1
    ------------------------------------------
    71c4def8a402e1053c61dc532420b18ef0679f52
    (1 row)

  • Metode Kedua

    CREATE OR REPLACE FUNCTION sha1(bytea) RETURNS char(40) AS $$
    BEGIN
    RETURN ENCODE(DIGEST($1, 'sha1'), 'hex');
    END;
    $$ LANGUAGE plpgsql;

    Penggunaan:

    db=# select sha1('sukses');
    sha1
    ------------------------------------------
    71c4def8a402e1053c61dc532420b18ef0679f52
    (1 row)

Sumber:
http://raveica.comdurav.com/blog/programming/how-do-i-add-sha1-to-postgresql/

Pada instalasi default di Server Database Postgresql 8.1, fitur kriptografi hanya terbatas pada MD5 dan fungsi enkripsi dan dekripsi. Untuk dapat menggunakan fitur-fitur hashing yang lebih komplit, misal menggunakan fungsi SHA1, maka kita harus menambah fungsi kriptografi, yaitu paket postgresql-contrib.

Fitur-fitur kriptografi yang terdapat dalam paket postgresql-contrib:

  • MD5
  • SHA1
  • SHA224/256/384/512
  • Any other digest algo*
  • Blowfish
  • AES
  • DES/3DES/CAST5*
  • Raw encryption
  • PGP Symmetric encryption
  • PGP Public-Key encryption
    * dengan menggunakan openSSL

Langkah untuk menambah fitur kriptografi dalam server Centos 5:

  1. Login sebagai root
  2. Install paket postgresql-contrib, dengan mengetikkan pada konsole:
    [root@hris ~]# yum install postgresql-contrib
  3. Untuk melihat hasil instalasi dapat digunakan perintah
    [root@hris ~]# rpm -qil postgresql-contrib
    Name : postgresql-contrib Relocations: (not relocatable)
    Version : 8.1.11 Vendor: CentOS
    Release : 1.el5_1.1 Build Date: Sab 12 Jan 2008 09:45:09 WIT
  4. Kemudian eksekusi kueri pada file pgcrypto.sql
    [root@hris ~]# psql -d TesDatabase -f /usr/share/pgsql/pgcrypto.sql
  5. Selesai.

Silakan ditest pada psql dengan menggunakan perintah:

database=# select encode(digest('sukses', 'sha1'), 'hex');
encode
------------------------------------------
71c4def8a402e1053c61dc532420b18ef0679f52
(1 row)

Semoga bermanfaat.

sumber:
http://www.centos.org/modules/newbb/viewtopic.php?topic_id=15330
README.pgcrypto