SQL - 加密数据列

时间:2010-07-30 01:01:58

标签: sql-server encryption

什么DataType应该是存储加密数据的列?

我们可以使用varchar而不是varbinary =>如果我们使用varchar

会有什么奇怪的后果吗?

由于

2 个答案:

答案 0 :(得分:3)

必须是varbinary。使用varchar将导致客户端应用程序中的所有奇怪行为。使用nvarchar可能会命中无效的unicode组合。最重要的是,绝对没有一个理由可以为此使用varchar而不是varbinary。

答案 1 :(得分:2)

您应该在SqlServer中使用BINARY(n)或VARBINARY(n)数据类型。其他DBMS有相同但不同命名的数据类型。

如果客户端和服务器在不同的代码页上工作,则使用VARCHAR会遇到问题,因为系统会尝试在代码页之间进行转换。如果您的数据库正在存储或您的cliuent设置为使用字符数据为utf-8或unicode,您将遇到更多问题,因为某些位模式会对字符串的解释方式产生重大影响。