【发布时间】:2018-12-31 07:32:59
【问题描述】:
我可以使用对称密钥加密和解密 varchar、nvarchar、char 列,但不能对 int、datetime、float、bigint 数据类型列执行相同操作
示例表:Mytable
| Id Code percentage name activity |
+------------------------------------------+
| 1 ad 43.43 James Running |
| 3 Pr 70.43 Sam Cooking |
| 5 nt 90.34 Lisa Walking |
| 4 ash 0.00 James Stealing |
| 2 han 0.00 James Lacking |
| 8 ant 73 Sam Cooking |
我想分别加密和解密整数和浮点数据类型的 ID 列和百分比。
我正在使用此代码进行加密:
OPEN SYMMETRIC KEY SymKey DECRYPTION BY CERTIFICATE data
ALTER TABLE Mytable
SET ADD idencry VARBINARY(128) NULL
UPDATE Mytable
SET idencry = ENCRYPTBYKEY(KEY_GUID('datamSymKey'), CONVERT(varbinary, ID))
要解密我正在使用此代码:
SELECT
id,
CONVERT(NVARCHAR(60), DECRYPTBYKEY(idencry )), *
FROM
Mytable
但它没有返回正确的结果......浮点和日期时间日期类型也是如此
【问题讨论】:
-
请随意添加相关代码,这样用户就会知道你在做什么以及当前代码有什么问题!见Example
-
这篇文章可能对你有帮助c-sharpcorner.com/UploadFile/chinnasrihari/…
-
这篇文章也可以解释和展示示例:docs.microsoft.com/en-us/sql/relational-databases/security/…
标签: sql sql-server