共用方式為


選擇加密演算法

加密是數個深度防禦之一,可供想要保護 SQL Server 實例的系統管理員使用。

加密演算法會定義未經授權的使用者無法輕易反轉的數據轉換。 SQL Server 可讓系統管理員和開發人員從數種演算法中選擇,包括 DES、Triple DES、TRIPLE_DES_3KEY、RC2、RC4、128 位 RC4、DESX、128 位 AES、192 位 AES 和 256 位 AES。

沒有任何單一演算法適用於所有情況,而且每個演算法的優點指引都超出《SQL Server 在線叢書》的範圍。 不過,適用下列一般原則:

  • 強式加密通常會耗用比弱式加密更多的 CPU 資源。

  • 長金鑰通常會產生比短金鑰更強的加密。

  • 非對稱式加密比使用相同密鑰長度的對稱式加密弱,但速度相對較慢。

  • 具有長索引鍵的區塊加密比串流加密強。

  • 長、複雜密碼比短密碼強。

  • 如果您要加密大量數據,您應該使用對稱金鑰加密數據,並使用非對稱金鑰加密對稱金鑰。

  • 加密的數據無法壓縮,但可以加密壓縮的數據。 如果您使用壓縮,您應該先壓縮數據,再加密數據。

這很重要

只有 RC4 演算法支援回溯相容性。 只有在資料庫相容性層級為 90 或 100 時,才能使用 RC4 或 RC4_128 加密新資料 (不建議使用)。請改用較新的演算法,例如其中一個 AES 演算法。 在 SQL Server 2012 及更高版本中,使用 RC4 或 RC4_128 加密的資料可以在任何相容性層級中解密。

在不同數據區塊上重複使用相同的 RC4 或 RC4_128 KEY_GUID 會導致使用相同的 RC4 密鑰,因為 SQL Server 不會自動提供 salt。 重複使用相同的 RC4 金鑰是已知錯誤,會導致非常弱的加密。 因此,我們已取代 RC4 和 RC4_128 關鍵詞。 這項功能將在未來的 SQL Server Microsoft 版本中移除。 請勿在新的開發工作中使用這項功能,並修改目前使用此功能的應用程式。

如需加密演算法和加密技術的詳細資訊,請參閱 MSDN 上的 .NET Framework 開發人員指南中的 重要安全性概念

關於 DES 演算法的釐清:

  • DESX 被誤命名。 以 ALGORITHM = DESX 建立的對稱金鑰,實際上使用 TRIPLE DES 加密搭配 192 位密鑰。 未提供 DESX 演算法。 這項功能將在未來的 SQL Server Microsoft 版本中移除。 請避免在新的開發工作中使用此功能,並計劃修改目前使用此功能的應用程式。

  • 使用 ALGORITHM = TRIPLE_DES_3KEY 所建立的對稱密鑰採用 192 位元密鑰的 TRIPLE DES。

  • 使用 ALGORITHM = TRIPLE_DES 的對稱金鑰會採用 TRIPLE DES 並使用 128 位金鑰建立。

使用對稱金鑰加密。 CREATE SYMMETRIC KEY(Transact-SQL)
使用非對稱金鑰加密。 建立非對稱鍵(Transact-SQL)
使用憑證加密。 CREATE CERTIFICATE (Transact-SQL)
使用透明數據加密來加密資料庫檔案。 透明資料加密 (TDE)
如何加密數據表的一個數據行。 加密數據行

另請參閱

SQL Server 加密
加密階層