2

アプリケーションには、セキュリティ上の理由から暗号化する必要がある列がいくつかあります。これは SQL Server 2008 でどのように可能ですか? また、それらを常に手動で復号化する必要がありますか、それとも自動的に行われますか?

ありがとう、

サチン

4

3 に答える 3

3

を作成してCertificateからSymmetric Key、証明書を使用するを作成できます。

CREATE CERTIFICATE YourCertificate
 WITH SUBJECT = 'Encrypted Content';
GO

CREATE SYMMETRIC KEY SSN_Key
  WITH ALGORITHM = AES_256
   ENCRYPTION BY CERTIFICATE YourCertificate;
GO

DecryptByKey復号化するには: 次を使用できます。

MSDN の例は次のとおりです。

SELECT CardNumber, CardNumber_Encrypted AS 'Encrypted card number',
   CONVERT(nvarchar,
   DecryptByKey(CardNumber_Encrypted, 1 , 
   HashBytes('SHA1', CONVERT(varbinary, CreditCardID)))) AS 'Decrypted card number'  
FROM Sales.CreditCard;

http://msdn.microsoft.com/en-us/library/ms179331(v=sql.105).aspx

于 2012-05-22T10:24:55.697 に答える
2

MSDN の投稿をご覧ください。方法: データの列を暗号化する

于 2012-05-22T10:26:06.867 に答える
0

まず、次のコードを使用して assym キーを作成します。

USE [yourDB]    
GO    
CREATE ASYMMETRIC KEY ClaveAsym    
WITH ALGORITHM = RSA_2048 ---->Take a look in this type of algorithms    
ENCRYPTION BY PASSWORD = 'yourKey'
GO

これを覚えておいてください。復号化または暗号化する変数は常に宣言する必要があります。

DECLARE @KEYID INT SET @KEYID = AsymKey_ID('ClaveAsym')

データの復号化

SELECT columnA, CAST(DecryptByAsymKey(@keyid, columnUser, N'yourKey') AS VARCHAR(100)), CONVERT(VARCHAR(MAX), DECRYPTBYASYMKEY(@keyId, columnPass, N'yourKey')) FROM yourTable

データの暗号化

DECLARE @User VARCHAR(MAX), @pass VARCHAR(MAX)    
SET @User = 'yourUser'    
sET @pass = 'yourPass'    
DECLARE @KEYID INT SET @KEYID = AsymKey_ID('ClaveAsym')    
INSERT INTO yourTable( User, passw) VALUES EncryptByAsymKey (@keyid, @User ), EncryptByAsymKey (@keyid, @pass))
于 2014-02-06T20:08:32.973 に答える