반응형
Ant_U
DBA 개미
Ant_U
전체 방문자
오늘
어제
  • 분류 전체보기 (262)
    • AWS (3)
    • C# (1)
    • SQL (236)
      • MYSQL (186)
      • MSSQL (50)
    • 자격증 (20)
      • SQLD (12)
      • SQLP (8)

인기 글

최근 글

250x250
hELLO · Designed By 정상우.
Ant_U

DBA 개미

[MSSQL] 데이터 암호화, 복호화 (ENCRYPTBYKEY, DECRYPTBYKEY)
SQL/MSSQL

[MSSQL] 데이터 암호화, 복호화 (ENCRYPTBYKEY, DECRYPTBYKEY)

2023. 9. 6. 14:47
728x90
반응형

 

MSSQL에서 `ENCRYPTBYKEY` 및 `DECRYPTBYKEY` 함수는 대칭 키를 사용하여 데이터를 암호화 및 복호화하는 데 사용됩니다. 

이러한 함수는 데이터 보안을 향상시키는 데 도움이 되며, 주로 민감한 정보를 저장하거나 전송하는 경우에 유용합니다.

아래에서는 `ENCRYPTBYKEY`와 `DECRYPTBYKEY` 함수의 예제를 포함하여 자세히 설명하겠습니다.

1. 대칭 키 생성 및 설정

먼저, 대칭 키를 생성하고 설정해야 합니다. 이것은 한 번만 수행하면 됩니다. 예를 들어, 다음과 같이 대칭 키를 생성할 수 있습니다:

-- 대칭 키 생성
CREATE MASTER KEY ENCRYPTION BY PASSWORD = 'MyStrongPassword';
CREATE CERTIFICATE MyCert WITH SUBJECT = 'My Symmetric Key';

-- 대칭 키 생성 및 암호화
CREATE SYMMETRIC KEY MySymmetricKey
WITH ALGORITHM = AES_256
ENCRYPTION BY CERTIFICATE MyCert;


2. 데이터 암호화 (`ENCRYPTBYKEY` 사용)

이제 대칭 키로 데이터를 암호화할 수 있습니다. 예를 들어, 다음과 같이 데이터를 암호화할 수 있습니다:

DECLARE @MyData VARBINARY(MAX) = ENCRYPTBYKEY(KEY_GUID('MySymmetricKey'), 'MySensitiveData');

-- 암호화된 데이터 출력
SELECT @MyData;

`ENCRYPTBYKEY` 함수는 대칭 키의 이름 또는 GUID와 암호화할 데이터를 인수로 취합니다. `@MyData`에는 암호화된 데이터가 저장됩니다.

3. 데이터 복호화 (`DECRYPTBYKEY` 사용)

저장된 암호화된 데이터를 다시 읽을 때, `DECRYPTBYKEY` 함수를 사용하여 데이터를 복호화할 수 있습니다. 다음은 복호화하는 방법입니다:

DECLARE @DecryptedData NVARCHAR(MAX) = CAST(DECRYPTBYKEY(@MyData) AS NVARCHAR(MAX));

-- 복호화된 데이터 출력
SELECT @DecryptedData;

`DECRYPTBYKEY` 함수는 암호화된 데이터를 입력으로 사용하며, 원래 데이터를 반환합니다.

이제 데이터는 암호화되어 저장되었고, 필요할 때마다 복호화할 수 있습니다. 

데이터 보안을 높이고 민감한 정보를 안전하게 저장하거나 전송하는 데 도움이 되는 MSSQL의 `ENCRYPTBYKEY` 및 `DECRYPTBYKEY` 함수를 사용하는 방법을 살펴보았습니다.

728x90
반응형

'SQL > MSSQL' 카테고리의 다른 글

[MSSQL] hierarchyid 메서드 사용 방법 및 예시  (0) 2024.04.09
[MSSQL] smalldatetime 사용 방법 및 예시  (0) 2024.04.09
[MSSQL] datetimeoffset 사용 방법 및 예시  (0) 2024.04.09
[MSSQL]DATE, DATETIME, TIME 날짜 시간 데이터 형식  (0) 2024.04.09
[MSSQL] TRY 함수 사용 방법 및 예시(TRY_CAST, TRY_CONVERT, TRY_PARSE)  (0) 2023.09.05
[MSSQL] PARSE 함수 사용 방법 및 예시  (0) 2023.09.04
[MSSQL] CAST, CONVERT 타입 변환 함수 사용 방법 및 예시  (0) 2023.09.04
[MSSQL] @@VERSION 사용 방법 및 예시  (0) 2023.09.01
    'SQL/MSSQL' 카테고리의 다른 글
    • [MSSQL] datetimeoffset 사용 방법 및 예시
    • [MSSQL]DATE, DATETIME, TIME 날짜 시간 데이터 형식
    • [MSSQL] TRY 함수 사용 방법 및 예시(TRY_CAST, TRY_CONVERT, TRY_PARSE)
    • [MSSQL] PARSE 함수 사용 방법 및 예시
    Ant_U
    Ant_U

    티스토리툴바