본문 바로가기
잡동/MSSQL

OPEN SYMMETRIC KEY 를통한 암호화 복호

by 죠부니 2019. 6. 12.
반응형

https://docs.microsoft.com/ko-kr/sql/t-sql/statements/open-symmetric-key-transact-sql?view=sql-server-2017

 

OPEN SYMMETRIC KEY(Transact-SQL) - SQL Server

OPEN SYMMETRIC KEY(Transact-SQL)OPEN SYMMETRIC KEY (Transact-SQL) 이 문서의 내용 --> 적용 대상: SQL Server(2008부터) Azure SQL Database Azure SQL Data Warehouse 병렬 데이터 웨어하우스 APPLIES TO: SQL Server (starting with 2008) Azure SQL Database Azure SQL Data Warehouse Parall

docs.microsoft.com

1. MASTER KEY 생성

https://docs.microsoft.com/ko-kr/sql/t-sql/statements/create-master-key-transact-sql?view=sql-server-2017

 

CREATE MASTER KEY(Transact-SQL) - SQL Server

CREATE MASTER KEY(Transact-SQL)CREATE MASTER KEY (Transact-SQL) 이 문서의 내용 --> 적용 대상: SQL Server(2008부터) Azure SQL Database Azure SQL Data Warehouse 병렬 데이터 웨어하우스 APPLIES TO: SQL Server (starting with 2008) Azure SQL Database Azure SQL Data Warehouse Parallel

docs.microsoft.com

CREATE MASTER KEY ENCRYPTION BY PASSWORD = '원하는비밀번호입력'

2. CERTIFICATE 생성

https://docs.microsoft.com/ko-kr/sql/t-sql/statements/create-certificate-transact-sql?view=sql-server-2017

 

CREATE CERTIFICATE(Transact-SQL) - SQL Server

CREATE CERTIFICATE(Transact-SQL)CREATE CERTIFICATE (Transact-SQL) 이 문서의 내용 --> 적용 대상: SQL Server(2008부터) Azure SQL Database Azure SQL Data Warehouse 병렬 데이터 웨어하우스 APPLIES TO: SQL Server (starting with 2008) Azure SQL Database Azure SQL Data Warehouse Parall

docs.microsoft.com

CREATE CERTIFICATE naitasCert WITH SUBJECT = '인증서입니다.';

3. SYMMETRIC KEY 생성

https://docs.microsoft.com/ko-kr/sql/t-sql/statements/create-symmetric-key-transact-sql?view=sql-server-2017

 

CREATE SYMMETRIC KEY(Transact-SQL) - SQL Server

CREATE SYMMETRIC KEY(Transact-SQL)CREATE SYMMETRIC KEY (Transact-SQL) 이 문서의 내용 --> 적용 대상: SQL Server(2008부터) Azure SQL Database Azure SQL Data Warehouse 병렬 데이터 웨어하우스 APPLIES TO: SQL Server (starting with 2008) Azure SQL Database Azure SQL Data Warehouse Pa

docs.microsoft.com

ALGORITHM의 경우 원하는 알고리즘을 결정할것 나의경우 AES_256을선택

CREATE SYMMETRIC KEY naitasKey WITH ALGORITHM = AES_256 ENCRYPTION BY CERTIFICATE naitasCert ;

4. 데이터베이스에 자료형은?

member라는 임시테이블생성

자료형의 경우 varbinary를 쓴다.

varbinary 256

 

5. SYMMETRIC KEY를 사용시 OPEN로 해당내용을 열고 CLOSE로 닫는다

OPEN SYMMETRIC KEY [naitasKey] DECRYPTION BY CERTIFICATE [naitasCert]

CLOSE SYMMETRIC KEY [naitasKey]

6. 내용삽입 encryptbykey를 이용하여 내용추가

OPEN SYMMETRIC KEY [naitasKey] DECRYPTION BY CERTIFICATE [naitasCert]

INSERT INTO member (mem_id) VALUES (encryptbykey(Key_GUID('naitasKey'), N'testab'))

CLOSE SYMMETRIC KEY [naitasKey]

암호화결과

7. 복호화 decryptbykey 를 통해서 복호화한다.

OPEN SYMMETRIC KEY [naitasKey] DECRYPTION BY CERTIFICATE [naitasCert]

SELECT * FROM member

CLOSE SYMMETRIC KEY [naitasKey]

그냥 select했을경우 해당내용을 확인이 불가능하다.

쿼리결과

OPEN SYMMETRIC KEY [naitasKey] DECRYPTION BY CERTIFICATE [naitasCert]
SELECT *,convert( NVARCHAR(100), decryptbykey(mem_id)) FROM member
CLOSE SYMMETRIC KEY [naitasKey]

복호화했을시의 결과값

복호화결과

 

 

추가정보

https://ss64.com/sql/

 

SQL Server commands | SS64.com

 

ss64.com

 

반응형