我有一个用于在SQL Server数据库表中存储密码的列,其中所有数据都加密如下:
25-4B-F1-CB-2C-12-85-EB-17-2E-36-C0-B4-01-2C-28
如何将此数据解密为可读形式?我正在使用SQL Server 2012.我非常需要这个帮助&你的帮助将得到真正的赞赏。感谢
答案 0 :(得分:1)
这看起来像md5
散列函数的输出,其中每个字节都转换为十六进制字符串并用短划线分隔。 md5的输出是128位,这里恰好是16字节的数据。 sha-1
和sha-2
哈希函数产生更大的输出,因此它不太可能是那个函数。
你不能解密它,如设计md5,如果不可逆功能。
但如果这些数据实际上是一些哈希密码 - 您仍然可以使用这些密码来验证您的用户。
您只需要 - 从用户那里获取纯文本密码,使用TSQL HashBytes函数计算它的md5哈希值,将其逐字节转换为您保存的格式(由破折号分隔的十六进制字符串)并与您进行比较节省了价值。或者,当然 - 您可以将保存的值初步转换回varbinary并保存在另一列中,并将该varbinaries与md5的输出进行比较 - 它取决于您。