[SQL]如何跨資料庫,讓對稱式加密金鑰共用(KEY,SYMMETRIC,ENCRYPTION,ENCRYP)

  • 2285
  • 0

摘要:[SQL]如何跨資料庫,讓對稱式加密金鑰共用(KEY,SYMMETRIC,ENCRYPTION,ENCRYP)

其實關鍵只在建立金鑰的時候,IDENTITY_VALUE還有KEY_SOURCE在兩個不同的資料庫一定都要一模一樣 這樣子做出來的金鑰就一樣了

我們先在資料庫 天字一號 還有資料庫 天字二號 執行下列一模一樣的指令,用以建立一樣的對稱式金鑰


CREATE SYMMETRIC KEY YEN_KEY WITH 
IDENTITY_VALUE = 'IDENTITY VALUE OF YEN_KEY', 
ALGORITHM = AES_256,  
KEY_SOURCE = 'KEY SOURCE FOR YEN_KEY' 
ENCRYPTION BY PASSWORD = 'ABCD_PASSWORD'

 

使用方法:

舉例來說我們先使用資料庫 天字一號 的金鑰去幫某個資料表叫做 無敵超人 資料表,並且幫某個欄位加密


OPEN SYMMETRIC KEY YEN_KEY DECRYPTION BY PASSWORD = 'ABCD_PASSWORD';
UPDATE 無敵超人 SET 欄位0 = encryptbykey(key_guid('YEN_KEY'),N'這是利用無敵超人資料庫的金鑰加密的文字')
WHERE sn = 1

然後再使用資料庫 天字二號的金鑰,去把天字一號的無敵超人資料庫的加密資料解出來


OPEN SYMMETRIC KEY YEN_KEY DECRYPTION BY PASSWORD = 'ABCD_PASSWORD';
select *,convert(nvarchar,DecryptByKey(欄位0)) FROM 天字一號.dbo.無敵超人

跨資料庫使用一樣的金鑰就這麼簡單囉