암/복호화시 사용하는 key를 노출하지 않기 위해 함수 작성

 

1. 암호화 함수 

DELIMITER $$
create function cs.get_encrypt(rawtxt text) returns text
modifies sql data
deterministic
sql security definer
begin
    declare key_string varchar(256);
    declare in_text    text;
    declare out_text   text;

    set key_string = sha2('thisiskey',256);
    set in_text = rawtxt;
    set out_text = '';

    select hex(aes_encrypt(in_text, key_string)) into out_text ;
    
    return out_text;
end;
$$
DELIMITER ;

2. 복호화 함수
DELIMITER $$
create function cs.get_decrypt(rawtxt text) returns text
modifies sql data
deterministic
sql security definer
begin
    declare key_string varchar(256);
    declare in_text    text;
    declare out_text   text;

    set key_string = sha2('thisiskey',256);
    set in_text = rawtxt;
    set out_text = '';

    select aes_decrypt(unhex(in_text), key_string) into out_text ;
    
    return out_text;
end;
$$
DELIMITER ;

 

 

3. 권한 부여

grant execute on function get_decrypt to test;

'RDB > MySQL' 카테고리의 다른 글

mariabackup script  (0) 2019.04.22
custom 암/복호화 procedure  (0) 2019.04.19
mariadb 데이터 암/복호화  (0) 2019.04.08
mariabackup 사용  (0) 2019.04.08
mariadb data-at-rest (tde) 구성  (2) 2019.04.02

+ Recent posts