2

SQL Server 2016 の Always Encrypted 機能に関するさまざまな記事で、SQL Server Management Studio UI またはNew- Sql Column Encryption Key powershell コマンドを使用して列暗号化キーを作成する方法が説明されているようです。しかし、C# クライアント アプリケーション自体が列暗号化キーを作成したい場合はどうなるでしょうか。ENCRYPTED_VALUEこの列の形式は何ですか?

CREATE COLUMN ENCRYPTION KEY CEK1
WITH VALUES (
COLUMN_MASTER_KEY = CMK1,
ALGORITHM = 'RSA_OAEP',
ENCRYPTED_VALUE = ??????
4

1 に答える 1

4

証明書ストア プロバイダーの場合、たとえば以下に示すように、 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( "-", "" );

私を正しい方向に向けてくれたこのブログ投稿のおかげです。

于 2017-10-10T23:47:38.307 に答える