DATABASE/Mariadb

MariaDB 암호화(SHA2), 데이터타입 설정 방법

Fehoon- 2018. 3. 21. 18:08

 


MariaDB에서는 여러가지 암호화 방법을 제공한다.

하지만 여기서 사용할 것은 비대칭 암호화 방법 SHA 256을 사용하려고한다.
그 이유는 대칭키를 이용한 암호화 방법을 사용 시 관리자가 암호화된 데이터를 복호화 하여 확인할 수 있기 때문이며 또한 암호화에 사용된 키가 유출될 경우 데이터가 전부 유출될 가능성이 있기 때문이다.

SHA2에 대한 설명이 잘 되어있는 글의 맨 하단 출처의 사이트에서 가져왔다.

테이블 생성 시 SHA256을 사용할 경우 항목에 대한 데이터 타입을 다음과 같이 설정하면 된다.
총 256비트를 사용하기 때문에 

PW VARCHAR(255) 

와 같이 데이터 타입을 설정해주면 된다. 
한 블로그에서 BLOB타입을 사용하는 것을 권장한다고 하였으나 용량과 처리 속도에서 문제가 될 것같아서 그냥 VARCHAR(255)로 설정하기로 하였다.

- * 이 부분에 대한 자세한 지식은 부족하여 댓글을 달아주시면 정말 감사하겠습니다.


SHA2

sha2(string,hash_length)

 

SHA2 함수는 SHA-2 계열의 해시 함수들(SHA-224, SHA-256, SHA-384, and SHA-512)을 계산한다. 첫번째 인자는 해싱될 문자열이다. 두번째 인자는 기대하는 결과 비트의 길이를 나타내는데, 224, 256, 384, 512 또는 0(256과 동일) 중 하나여야 한다.

Parameters:

string -- 암호화할 대상 문자열

Return type:

STRING

 

 

 

 

인자 중 하나 이상이 NULL 이거나 허용된 해시 길이가 아니면 NULL을 반환한다. 정상 범위의 인자를 입력한 경우 원하는 비트 수를 포함하는 해시 값을 반환한다.

SELECT SHA2('cubrid', 256);
   sha2('cubrid', 256)
======================
  'D14DA17F2C492114F4A57D9F7BED908FD3A351B40CD59F0F79413687E4CA85A5'
SELECT SHA2('cubrid', 224);
   sha2('cubrid', 224)
======================
  '8E5E18B5B47646C31CCEA98A87B19CBEF084036716FBD13D723AC9B2'


출처 : https://www.cubrid.org/manual/ko/9.3.0/sql/function/encryption_fn.html


반응형