【问题标题】:Calculating MD5 HashBytes for Nvarchar(max) column is possible in SQL?在 SQL 中可以为 Nvarchar(max) 列计算 MD5 HashBytes 吗?
【发布时间】:2015-11-12 21:44:17
【问题描述】:

我有一个列数据类型为 nvarchar(max) 的表,该列将包含超过 8000 个字符的数据。

mytext navarchar(max)

我想计算该列的哈希值,我在 MS SQL 2008/R2 中使用以下代码

select HASHBYTES('md5',column_name)

但是我得到了错误,

String or binary data would be truncated.

是否可以在 sql 查询中计算 nvarchar(max) 字段中的哈希值。

或者有没有其他方法可以做到。

提前致谢。

【问题讨论】:

  • HASHBYTES 的 MSDN 文档说 Allowed input values are limited to 8000 bytes 因此很抱歉你不走运:)
  • 使用 .Net CLR,它适用于长字符串

标签: sql-server sql-server-2008 tsql hash md5


【解决方案1】:

如前所述,允许的输入值限制为 8000 字节。

试试:

select master.sys.fn_repl_hash_binary(cast(column_name as varbinary(max)))

对于此操作,您必须禁用 FIPS 验证的加密算法: http://blog.aggregatedintelligence.com/2007/10/fips-validated-cryptographic-algorithms.html

【讨论】:

  • 请添加标签
猜你喜欢
  • 1970-01-01
  • 2011-04-11
  • 2018-05-22
  • 1970-01-01
  • 1970-01-01
  • 2022-01-19
  • 1970-01-01
  • 2011-01-27
  • 2016-09-20
相关资源
最近更新 更多