问题标签 [hashbytes]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c# - C# hash 和 sql server 的 hashbytel 函数,相同的实现?
我想同时拥有 c# 级别和 sql server 2012 级别。
我如何知道 SHA1 实现是否会产生相同的结果?
在我正在做的 sql server 中:
我还没有编写我的 c# 函数。
我只是担心如果它们不产生相同的哈希值,我的应用程序会出现一些不一致的情况。
注意: 我将用于创建哈希的列是 datetime、nvarchar 和 int。我必须将这些转换为字符串正确吗?
c# - SQL Uniqueidentifier hashbytes 不匹配
我有C#
制作连接SQL Server 2014
数据库的应用程序。当我在 上创建Guid
时C#
,它通过lower case
. 但是当我进行查询时SQL
,我得到了这个值upper case
。这个Guid
值需要被 散列SHA1
,并且 asSQL
返回不同的hashed value
。
是因为collation
?
我用Turkish_CI_AI
.
hashbytes - 我怎样才能获得 nvarchar 的哈希字节(最大)?
如果我使用正常选择哈希字节('md5','std.jobText'),如何找到 nvarchar(max)的哈希字节
我收到错误:字符串或二进制数据将被截断。
有人可以提出任何解决方案吗?
sql-server - SQL Server HashBytes 函数
有人可以告诉我为什么我得到以下不同的答案:
这是一个非常简单的函数,用于返回哈希值:
这是我的 SQL,它返回 2 个不同的值:
结果:
由于某种原因,该函数没有返回与 HASH1 相同的值。我只是不确定为什么。
谢谢。
更新:
接受的答案如下,我只是将 (max) 添加到 VARBINARY 以返回整个值。谢谢大家。
java - Java PreparedStatement:将参数绑定到 HASHBYTES
现在,我有下面的准备好的声明,它有效:
但是,当我尝试参数化要由HASHBYTES加密的值(在本例中为变量'password')时,会出现某种不返回结果的读取/类型/转换错误。这是不起作用的代码:
我根本没有收到任何错误消息;结果集在 rowCount 属性中返回“-3”。我正在使用SQL Server。
像这样传递“密码”占位符:“?” 也不起作用。参数化此查询的正确方法是什么?
tsql - 是否可以使用 t-SQL 为不在数据库中的文件使用 HASHBYTES 存储哈希?
我只是想知道是否可以使用 t-SQL (SQL Server 2012) 为不在数据库中的文件使用 HASHBYTES 存储 MD5 哈希?
我只是想实现上面所说的,而不使用除 T-SQL 之外的任何东西。那就是约束天气或没有更好的方法。这是一个不灵活的约束/要求,只能使用 T-SQL。没有插件没有 powrshell 只有 T-SQL。
任何人都可以提供 T-SQL 代码来实现将某个文件的哈希(无论您想要什么名称)放入表中的字段(使用您喜欢的任何名称)的目标吗?
我知道有些人可能会认为有更好的方法,但更好的方法不是喜欢或不喜欢的选择。因此,请不要提供任何非 100% T-SQL 解决方案或评论。
sql-server - SQL Server 2014 Hashbytes 的 nvarchar(max) 结果是 nvarchar(max)
使用 SQL Server 2014,我有一个表,其中有一个nvarchar(max)
名为的列,该列[ASCII File]
可以包含许多 K 的 ASCII 文本文件。然后我想对该文件执行 MD5 哈希字节,生成的哈希值应始终为 20 个字节。
好吧,当我进行选择时,hashbytes('MD5', [ASCII File])
我会完成查询并出现错误
消息 8152、级别 16、状态 10、第 4 行
字符串或二进制数据将被截断。
我尝试时收到相同的消息
我尝试时收到相同的消息
似乎因为我正在做 hashbytes 的列是nvarchar(max)
,所以 hashbytes 函数的结果也是nvarchar(max)
。
您能告诉我如何使结果达到预期的 20 长,而不是必须截断的那么长吗?
sql - 带有 datetime2 字段的 HashBytes
我正在使用多个列上的哈希字节创建一个哈希键,以获得我们现在在 where 子句中使用的性能增益。
但是其中一列是我无法添加的 datetime2 字段。当我尝试时,我收到以下错误消息
“表 'table1' 中的计算列 'HashKey' 无法持久化,因为该列是不确定的。”。
根据我的研究,我发现不能使用 datetime2,因为它是不确定的。
但是我无法更改格式,因为我需要完全比较该值,因为它包括所有毫秒。
任何人都可以给我一个解决方法吗?任何替代解决方案将不胜感激。
c# - 将 SQL Hash Bytes 二进制值(多数据类型字段组合)转换为 c# 等效项
我在 HashBytes 的帮助下形成了一个哈希键,如下所示,SQL 上的多个字段组合。
以上所有文件的数据类型如下
但是我需要 C# 等效函数来获取值,这样我就可以在字段值上使用 c# 代码获取值,然后将值传递给 sql,然后将值与哈希键列进行比较。
我已经尝试如下获取等效于哈希键二进制值的 byte[] 值。但它与 sql hash key value 的值不同。
任何人都可以帮助解决我所缺少的吗?