DataBase 2009. 9. 14. 16:20
반응형

License 정보를 Database에 넣어서 관리하고 싶을 때 사용했던 방식이다.

Mysql은 자체적으로 암호화 함수를 제공한다.


CREATE TABLE LICENSE_INFO (            
 MAX_SUBS blob NOT NULL,                 
) TYPE=InnoDB;

AES_ENCRYPT : 암호화
format) AES_ENCRYPT(FIELD_VALUE, 'KEY'));
ex)  insert into LICENSE_INFO values (AES_ENCRYPT(200, 'ssuk'_key));

'KEY' 값은 나중에 복호화 할때 이용되기 때문에 기억해야 한다.


AES_DECRYPT : 복호화
format) AES_DECRYPT(FILED_NAME, 'KEY')
ex) select AES_DECRYPT(MAX_SUBS, 'ssuk_key') from LICENSE_INFO;

결과에 암호화로 넣은 200이 나오는 것을 확인할 수 있음


이렇게 Msyql 간단히 사용할 수 있다.^^


그럼 Psql은??
사실 Psql도 암호화/복호화 함수가 있기 때문에 쉽게 사용할 수 있다.
모르는 사람이 많은 이유는 따로 contrib를 설치 해야하기 때문이다.

1. postgresql-contrib-xxx.rpm을 설치한다.
ex) postgresql-contrib-8.2.13-1PGDG.rhel4.i386.rpm (내가 사용한 rpm)

2. pgcrypto.sql 파일을 DB에 적용한다.
ex) psql DB_NAME < /usr/share/pgsql/contrib/pgcrypto.sql

3. 실제 사용

CREATE TABLE LICENSE_INFO (
 MAX_SUBS varchar(32)          
);

encode(encrypt()) : 암호화
format) (encode(encrypt('FIELD_VALUE', 'KEY', 'aes'), 'hex'),
ex) insert into LICENSE_INFO values (encode(encrypt('200', 'ssuk_key', 'aes'), 'hex'));

'KEY' 값은 나중에 복호화 할때 이용되기 때문에 기억해야 한다.

decrypt(decode()) : 복호화
format) decrypt(decode(FILED_NAME, 'hex'), 'KEY', 'aes') 
ex) select decrypt(decode(MAX_SUBS, 'hex'), 'ssuk_key', 'aes') from LICENSE_INFO;

결과에 암호화로 넣은 200이 나오는 것을 확인할 수 있음

이로써 Psql도 간단히 암호화/복호화를 쓸 수 있다.
반응형

'DataBase' 카테고리의 다른 글

INNER JOIN  (0) 2009.09.17
JOIN  (0) 2009.09.17
[Mysql] 기초 키워드 및 함수  (0) 2009.06.17
[Mysql] 문자 함수  (0) 2009.06.17
[Mysql] Oracle에 MINUS를 Mysql에서 구현해보자  (0) 2009.06.16
posted by ssuk1010
: