PostgreSQL 9.6.2 문서 | |||
---|---|---|---|
이전 | 위로 | 부록 F. 부가 확장 모듈들 | 다음 |
이 확장 모듈은 chkpass 라는 자료형을 제공하는 모듈이다. 이 자료형은 입력한 자료를 자동으로 암호화 해서 해당 칼럼에 저장된다. 복호화 기능이 없기 때문에, 암호가 맞는지는 입력되는 암호화 되기 전의 문자열과 해당 칼럼의 자료와 비교하는 방식으로 확인한다.
쉬운 암호들에 대한 오류 처리는 소스 코드 안에는 있지만, 현재 이것들은 아무 기능도 하지 않는다.
입력 문자열 앞에 콜론을 붙인다면, 이것은 이미 암호화된 것으로 여기고, 더 이상 암호화 하지 않고 저장한다. 즉, 미리 암호화 하는것이 가능하다.
출력은 앞에 콜론이 붙는다. 이는 덤프를 하거나 암호를 다시
저장할때, 다시 암호화 하지 않고 바로 저장 할 수 있도록 한다. 만약 콜론 없이
출력 하고 싶다면 raw()
함수를 사용하면 된다. 이는
아파치의 Auth_PostgreSQL모듈을 사용할 때 유용하게 쓰인다.
암호화는 유닉스 표준 crypt()
함수를 사용한다. 이 때문에
crypt()
함수의 제약 사항을 그대로 따른다. 특히 처음
8 바이트만 암호화 되며 나머지는 무시 된다.
참고: http://www.forensicswiki.org/wiki/Operating_System_Password_Encryption 참조
chkpass 자료형을 사용하는 칼럼은 인덱스를 만들 수 없다.
간단한 사용법:
test=# create table test (p chkpass); CREATE TABLE test=# insert into test values ('hello'); INSERT 0 1 test=# select * from test; p ---------------- :dVGkpXdOrE3ko (1 row) test=# select raw(p) from test; raw --------------- dVGkpXdOrE3ko (1 row) test=# select p = 'hello' from test; ?column? ---------- t (1 row) test=# select p = 'goodbye' from test; ?column? ---------- f (1 row)
D'Arcy J.M. Cain (<darcy@druid.net>
)