반응형
mssql 사용시 암호화 복호화가 필요할 경우 함수를 만들어 두면 편하게 사용할 수 있다.
아래 스크립트를 참고 해서 함수를 만든다.
암호화 함수
-- 암호화 함수
CREATE FUNCTION [dbo].[fn_EncryptString] ( @pClearString VARCHAR(100) )
RETURNS NVARCHAR(100) WITH ENCRYPTION AS
BEGIN
DECLARE @vEncryptedString NVARCHAR(100)
DECLARE @vIdx INT
DECLARE @vBaseIncrement INT
SET @vIdx = 1
SET @vBaseIncrement = 128
SET @vEncryptedString = ''
WHILE @vIdx <= LEN(@pClearString)
BEGIN
SET @vEncryptedString = @vEncryptedString +
NCHAR(ASCII(SUBSTRING(@pClearString, @vIdx, 1)) +
@vBaseIncrement + @vIdx - 1)
SET @vIdx = @vIdx + 1
END
RETURN @vEncryptedString
END
GO
복호화 함수
-- 복호화 함수
CREATE FUNCTION [dbo].[fn_DecryptString] ( @pEncryptedString NVARCHAR(100) )
RETURNS VARCHAR(100) WITH ENCRYPTION AS
BEGIN
DECLARE @vClearString VARCHAR(100)
DECLARE @vIdx INT
DECLARE @vBaseIncrement INT
SET @vIdx = 1
SET @vBaseIncrement = 128
SET @vClearString = ''
WHILE @vIdx <= LEN(@pEncryptedString)
BEGIN
SET @vClearString = @vClearString +
CHAR(UNICODE(SUBSTRING(@pEncryptedString, @vIdx, 1)) -
@vBaseIncrement - @vIdx + 1)
SET @vIdx = @vIdx + 1
END
RETURN @vClearString
END
GO
실행 방법
-- wString 라는 변수 선언
DECLARE @wString NVARCHAR(100)
--==============
-- 암호화
--==============
SELECT @wString = dbo.ufn_EncryptString('2403-0393')
--==============
-- 복호화
--==============
SELECT dbo.ufn_DecryptString(@wString)
=> 결과값 : '2403-0393'
반응형
'개발 > database' 카테고리의 다른 글
[H2 DB] 설치 및 실행 (0) | 2021.08.01 |
---|---|
[PL/SQL Developer] 편리한 사용을 위한 환경 설정 (0) | 2021.01.18 |
[sqlite] SQLite 설치 / 간단사용법 (0) | 2021.01.17 |
[mssql] 정규표현식 특정 문자 변경 (0) | 2021.01.17 |
[oracle] 오라클 테이블 목록, 컬럼 상세 조회 (0) | 2021.01.17 |
댓글