PostgreSQL에서 암호관련 함수를 이용하려면 pgcrypto 모듈이 설치되어야 함.
encrypt, decrypt, encrypt_iv, decrypt_iv 뭐 이런 함수들...



PostgreSQL을 소스로 설치했을 경우이며 아래같은 상황을 가정함.
소스파일 압축풀린 경로 : /usr/local/src/postgresql-8.4.3/
PostgreSQL 설치 경로  : /usr/local/pgsql/


1. 모듈 설치

cd /usr/local/src/postgresql-8.4.3/contrib/pgcrypto // 모듈의 소스파일이 있는 곳으로 이동
make // 컴파일
make install
// 설치

여기까지 하면 /usr/local/pgsql/lib/pgcrypto.so 모듈 파일이 생김


2. 함수 추가
psql 로 shell 에 들어가거나 해서 SQL로 사용할 함수를 추가하면 됨.
아래의 query는 몇가지 함수를 추가하는 예를 보여줌.
함수추가 query는 /usr/local/pgsql/share/contrib/pgcrypto.sql 에 들어있음.

SET search_path TO pg_catalog;

CREATE
OR
REPLACE FUNCTION digest(text, text)
RETURNS bytea
AS '$libdir/pgcrypto', 'pg_digest'
LANGUAGE C IMMUTABLE STRICT;
 
CREATE OR REPLACE FUNCTION digest(bytea, text)
RETURNS bytea
AS '$libdir/pgcrypto', 'pg_digest'
LANGUAGE C IMMUTABLE STRICT;
 
CREATE OR REPLACE FUNCTION crypt(text, text)
RETURNS text
AS '$libdir/pgcrypto', 'pg_crypt'
LANGUAGE C IMMUTABLE STRICT;
 
CREATE OR REPLACE FUNCTION encrypt(bytea, bytea, text)
RETURNS bytea
AS '$libdir/pgcrypto', 'pg_encrypt'
LANGUAGE C IMMUTABLE STRICT;
 
CREATE OR REPLACE FUNCTION decrypt(bytea, bytea, text)
RETURNS bytea
AS '$libdir/pgcrypto', 'pg_decrypt'
LANGUAGE C IMMUTABLE STRICT;
 
CREATE OR REPLACE FUNCTION encrypt_iv(bytea, bytea, bytea, text)
RETURNS bytea
AS '$libdir/pgcrypto', 'pg_encrypt_iv'
LANGUAGE C IMMUTABLE STRICT;
 
 
CREATE OR REPLACE FUNCTION decrypt_iv(bytea, bytea, bytea, text)
RETURNS bytea
AS '$libdir/pgcrypto', 'pg_decrypt_iv'
LANGUAGE C IMMUTABLE STRICT;









'DataBase' 카테고리의 다른 글

[PostgreSQL] CrossTab Query (tablefunc)  (0) 2010.04.02
[PostgreSQL] Date/Time Functions and Operators  (0) 2010.03.29
[PostgreSQL] enum type  (0) 2010.03.15
[MongoDB] with PHP  (0) 2010.03.12
[MongoDB] dbshell 레퍼런스  (0) 2010.03.12
Posted by bloodguy
,