如何加密Sql Server 2008中的數字列?如何加密Sql Server 2008中的數字列?
我想給僱員的工資列在SQL Server 2008中
列的類型是數字或貨幣進行加密。
有什麼加密方法可以支持以下要求嗎?
- 是否有任何sql加密用戶定義函數來加密列?加密結果的類型是字符串就可以了。
- sql server是否支持這種類型的加密?
- 有沒有一種簡單的加密方法可以加密數字,如123.56到362.15?
我使用C#和SQL Server 2008
如何加密Sql Server 2008中的數字列?如何加密Sql Server 2008中的數字列?
我想給僱員的工資列在SQL Server 2008中
列的類型是數字或貨幣進行加密。
有什麼加密方法可以支持以下要求嗎?
我使用C#和SQL Server 2008
沒有加密功能將有一個數字或金錢的輸出類型,直到永遠。加密值始終是字節數組(SQL二進制數據類型)或字節數組的某種表示形式(例如base64編碼的字符串)。
有沒有一種簡單的加密方法可以加密數字,如123.56到362.15? – Mike108
@ Mike108 :這不會是一個加密! –
@Mike - 我想我剛纔說沒有。如果你願意,我可以再說一遍。 –
您無法加密數字數據類型。你需要做的是將該列轉換爲VarChar
列,然後可以使用Base64以加密格式存儲該號碼。 1000列的VarChar
列將會更多。
您也可以將其存儲在Binary
字段中,而無需執行Base64編碼。
下面是用錢的數據類型的例子:
DECLARE @actualAmount MONEY;
DECLARE @encryptedAmount VARBINARY(128);
-- Encrypt value
SET @actualAmount = $12345.67;
SET @encryptedAmount = ENCRYPTBYKEY(KEY_GUID('MyEncryptionKeyName'), CONVERT(VARCHAR(30), @actualAmount));
PRINT @actualAmount;
PRINT @encryptedAmount;
-- Decrypt value
DECLARE @unencryptedActualAmount MONEY;
SET @unencryptedActualAmount = CONVERT(MONEY, CONVERT(VARCHAR(30), DECRYPTBYKEY(@encryptedAmount)));
PRINT @unencryptedActualAmount;
最安全的方式:不要將其存儲在數據庫.... –
是否有任何SQL加密用戶定義的函數加密列?加密結果的類型是字符串就可以了。 – Mike108