본문 바로가기
MSSQL

DB 암호화/복호화

by Fastlane 2021. 9. 8.
728x90
반응형

1. AES256 dll 파일 Assembly로 등록

2. 암호화 복호화 스칼라 함수 등록

 

복호화함수

CREATE FUNCTION [dbo].[UBAES256DeFunc](@Input [nvarchar](max), @KeyVal [nvarchar](max))
RETURNS [nvarchar](max) WITH EXECUTE AS CALLER
AS 
EXTERNAL NAME [어셈블리이름].[클래스이름].[함수이름]
GO



암호화함수

CREATE FUNCTION [dbo].[UBAES256EnFunc](@Input [nvarchar](max), @KeyVal [nvarchar](max))
RETURNS [nvarchar](max) WITH EXECUTE AS CALLER
AS 
EXTERNAL NAME [어셈블리이름].[클래스이름].[함수이름]
GO

 

3. 키값 넣어서 암호화, 복호화 함수 생성

WITH ENCRYPTION 으로 함수 생성 쿼리 볼 수 없도록 함. 

 

CREATE FUNCTION [dbo].[암호화함수] ( @Information NVarchar(max ))         
RETURNS VARCHAR (max)     
WITH ENCRYPTION          
AS      
BEGIN      
  DECLARE @V_Encrypted VARCHAR (max);      
      
  SELECT @V_Encrypted = CASE ISNULL(@Information ,'') 
  WHEN '' THEN NULL 
  ELSE [DB명].[dbo] .[UBAES256EnFunc] ( @Information, '암호키') END;      
      
  RETURN @V_Encrypted;        
       
END



ALTER FUNCTION [dbo].[복호화함수] ( @Information NVarchar(max ))   
RETURNS VARCHAR (max)    
WITH ENCRYPTION    
AS

BEGIN    
  DECLARE @V_Decrypted VARCHAR (max );    
    
  SELECT @V_Decrypted = CASE ISNULL(@Information ,'') 
  WHEN '' THEN NULL 
  ELSE [DB명].[dbo] .[UBAES256DeFunc] ( @Information, '암호키') END;    
    
  RETURN @V_Decrypted;      
END

 

728x90
반응형

댓글