Shi*_*mal 2 sql-server t-sql hashing
我想使用 SQL ServerHASHBYTES()功能。
但我不知道如何取回传递给HASHBYTES...的值
这并非不可能,但您应该考虑到原始数据丢失了,并且您无法轻松地从哈希值中取回原始数据。
一旦获得值 V1 的散列 H1,您就只能使用散列值。IE。知道值 V1 的哈希值 H1,您可以通过使用相同的哈希算法计算 H2,将 V1 与第二个值 V2 匹配。当 V1 = V2 时,H1 = H2。(见下面的碰撞)
来自哈希函数(维基百科):
散列函数是可用于将任意大小的数据映射到固定大小的数据的任何函数。散列函数返回的值称为散列值、散列代码、散列和或简称为散列。一种用途是称为哈希表的数据结构,广泛用于计算机软件中以进行快速数据查找。散列函数通过检测大文件中的重复记录来加速表或数据库查找。一个例子是在 DNA 序列中发现类似的片段。它们在密码学中也很有用。加密散列函数允许人们轻松验证某些输入数据是否映射到给定的散列值,但是如果输入数据未知,则故意难以通过知道存储的散列值来重建它(或等效的替代方案). 这用于确保传输数据的完整性,并且是提供消息身份验证的 HMAC 的构建块。
从理论上讲,可以还原用于计算某些哈希的某些数学函数。也可以通过一些工具使用字典和蛮力。但在大多数情况下,这太难了,或者需要很长时间才能让他们回来。
也不能保证您将获得相同的价值。它也可能获得具有相同散列的值,因为散列是固定长度的值,而输入数据的长度是无限长的。请参阅哈希冲突(维基百科):
冲突或冲突是当两个不同的数据具有相同的哈希值、校验和、指纹或加密摘要时发生的情况
| 归档时间: |
|
| 查看次数: |
851 次 |
| 最近记录: |