반응형
대칭키를 생성하고 암호화, 복호화 함수를 매번 만들어서 사용하는게 복잡하여 해당 방식을 함수화하여 필요한 값만 파라미터로 넘겨서 처리하도록 구성하였습니다.
암복호화 만들기는 아래 링크를 통해 확인 할 수 있습니다.
대칭키 열기
프로시저를 활용하여 대칭키를 열수 있도록 생성합니다.
CREATE PROCEDURE OpenKeys
AS
BEGIN
BEGIN TRY
OPEN SYMMETRIC KEY testKey
DECRYPTION BY CERTIFICATE testCert
END TRY
BEGIN CATCH
-- Handle non-existant key here
END CATCH
END
암호화 함수 만들기
문자열 형태로 데이터를 전달받아서 암호화된 바이너리 값을 return하는 함수를 만들었습니다.
CREATE FUNCTION getTestEncryt(@str varchar(400))
RETURNS varbinary(256)
AS
BEGIN
DECLARE @Result varbinary(256)
SET @Result = EncryptByKey(Key_GUID('testKey'), @str)
RETURN @Result
END
복호화 함수 만들기
암호화와 반대로 암호화된 데이터를 받아서 복호화 처리후 캐스팅하여 return하는 함수입니다.
CREATE FUNCTION getTestDecryt(@enc varbinary(256))
RETURNS varchar(400)
AS
BEGIN
DECLARE @result varchar(400)
SET @result = CONVERT(varchar, DecryptByKey(@enc))
RETURN @result
END
사용하기
암호화 테스트
EXEC OpenKeys
INSERT INTO user_info (name, phone) VALUES ('test', dbo.getTestEncryt('010-1234-1234'));
프로시저 OpenKeys를 사용 후 암호화된 데이터를 삽입합니다.
복호화 테스트
EXEC OpenKeys
SELECT
seq,
name,
phone,
dbo.getKisaDecryt(phone) as 'decryptPhone'
FROM user_info;
함수를 만들고 사용할 때, 'getTestDecryt'은(는) 인식할 수 없는 기본 제공 함수 이름입니다. 와 같은 오류가 발생했는데, dbo.를 붙여주고 정상적으로 사용되는 모습을 확인했다.
반응형
'Databases > Mssql' 카테고리의 다른 글
Mssql - like절 와일드카드('[]') 문자열로 인식시키고 검색하기 (0) | 2022.02.14 |
---|---|
Mssql - 대칭키를 활용한 데이터 암복호화 처리하기 (0) | 2021.05.07 |
Mssql - 한글 깨짐(데이터베이스 인코딩 확인,변경하기) (1) | 2021.05.06 |
Mssql - server management studio 툴을 통한 컬럼 키 설정 및 autoincreament 설정하기 (0) | 2021.05.06 |