암호화 예제

DB 2012. 4. 15. 19:56


나중에 해보기 위해 적어둠.


MSSQL 2005 이상(?) 암호화 사용 방법 스크립트. 


성능상 이슈로 비대칭키보다는 대칭키로 암호화 권장.

비대칭 대칭 키는 SQL Server 외부의 EKM(확장 가능 관리) 모듈에 저장 가능.



 

CREATE CERTIFICATE CertKeyProtection

    WITH SUBJECT = 'Key Protection'

    , START_DATE = '2012/03/30'

    , EXPIRY_DATE = '2015/03/30';

   

CREATE SYMMETRIC KEY KeyUserData

    WITH ALGORITHM = AES_256

    ENCRYPTION BY CERTIFICATE CertKeyProtection   

 

CREATE ASYMMETRIC KEY KeyUserDataSymmetric

    WITH ALGORITHM = RSA_2048

    ENCRYPTION BY PASSWORD = 'C1CF0166-B2BD-47FE-8352-34EC31428545';

GO

 

DECLARE @ENCSYNC varbinary(MAX)

DECLARE @ENCAsm varbinary(MAX)

DECLARE @section_value XML

SET @section_value = N'<appSettings>

    <add key="Setting" value="1" />

    <add key="ClientSettingsProvider.ServiceUri" value="" />

    <add key="LoginFailCountTerm" value="1" />

  </appSettings>';

OPEN SYMMETRIC KEY KeyUserData

    DECRYPTION BY CERTIFICATE CertKeyProtection;

 

 

SELECT @ENCSYNC = EncryptByKey(Key_GUID('KeyUserData'), N'silver test');

 

SELECT @ENCSYNC, CAST(DecryptByKey(@ENCSYNC) AS nvarchar(max));

 

CLOSE SYMMETRIC KEY KeyUserData;

 

SELECT EncryptByAsymKey(AsymKey_ID('KeyUserDataSymmetric'), N'silver test')

'DB' 카테고리의 다른 글

고속 insert  (0) 2013.04.03
플랜 캐시 (실행계획 캐시)  (0) 2012.10.30
WITH(NOLOCK)  (0) 2012.09.12
문자열 입력받아 split 하기..  (0) 2012.09.06
백업/복구  (0) 2012.04.12
MSSQL SET 명령(옵션) 모음  (0) 2011.02.02
MSSQL  (0) 2011.01.29
RAID  (0) 2011.01.29