解密 SQL 服务器中的列

Decrypt a column in SQL Server

我在 SQL 服务器数据库 table 中有一个用于存储密码的列,其中所有数据都是这样加密的:

25-4B-F1-CB-2C-12-85-EB-17-2E-36-C0-B4-01-2C-28

如何将此数据解密为可读形式?我正在使用 SQL Server 2012。我非常需要这个帮助,非常感谢你的帮助。谢谢

这看起来像是 md5 散列函数的输出,其中每个字节都被转换为十六进制字符串并用破折号分隔。 md5 的输出是 128 位,这里恰好是 16 字节的数据。 sha-1sha-2 哈希函数产生更大的输出,因此不太可能是那个函数。

你不能解密它,因为如果函数不可逆,md5 就是设计的。

但如果这些数据实际上是一些散列密码 - 您仍然可以使用这些密码来验证您的用户。

所有你需要的 - 从用户那里获取纯文本密码,使用 TSQL HashBytes 函数计算它的 md5 散列,将它逐字节转换为你保存的格式(由破折号分隔的十六进制字符串)并进行比较到您节省的价值。或者,当然 - 您可以将保存的值初步转换回 varbinary 并保存在另一列中,并将该 varbinaries 与 md5 的输出进行比较 - 这取决于您。