2017-10-10 13 views
0

SQL Server 2016의 항상 암호화 된 기능에 대한 다양한 기사에서 SQL Server Management Studio UI 또는 New-​Sql​Column​Encryption​Key powershell 명령을 사용하여 열 암호화 키를 만드는 방법을 설명합니다. 그러나 C# 클라이언트 응용 프로그램 자체에서 열 암호화 키를 만들려면 어떻게해야합니까? 이 ENCRYPTED_VALUE 열의 형식은 무엇입니까?C# 클라이언트에서 항상 암호화 된 열 암호화 키를 생성하는 방법

인증서 저장소 공급자에 대한
CREATE COLUMN ENCRYPTION KEY CEK1 
WITH VALUES (
COLUMN_MASTER_KEY = CMK1, 
ALGORITHM = 'RSA_OAEP', 
ENCRYPTED_VALUE = ?????? 

답변

0

, 당신은 SqlColumnEncryptionCertificateStoreProvider.EncryptColumnEncryptionKey Method을 사용할 수 있습니다, 예를 들어, 아래 그림과 같이 :

var randomBytes = new byte[ 32 ]; 
using (var rng = new RNGCryptoServiceProvider()) 
{ 
    rng.GetBytes(randomBytes); 
} 
var provider = new SqlColumnEncryptionCertificateStoreProvider(); 
var encryptedKey = provider.EncryptColumnEncryptionKey(masterKeyPath, "RSA_OAEP", randomBytes); 
var encryptedKeySerialized = "0x" + BitConverter.ToString(encryptedKey).Replace("-", ""); 

신용을 this blog post에 올바른 방향으로 날을 가리키는 위해.