我在sql server 2000中有以下查询:

select pwdencrypt('AAAA')


输出加密的字符串“ AAAA”:

0x0100CF465B7B12625EF019E157120D58DD46569AC7BF4118455D12625EF019E157120D58DD46569AC7BF4118455D


我如何转换(解密)其来源的输出(即“ AAAA”)?

最佳答案

我相信pwdencrypt使用的是散列,因此您无法真正撤消散列的字符串-算法是经过设计的,因此不可能实现。

如果要验证用户输入的密码,通常的技术是对密码进行哈希处理,然后将其与数据库中的哈希版本进行比较。

这是您可以验证用户输入表的方式

SELECT password_field FROM mytable WHERE password_field=pwdencrypt(userEnteredValue)


将userEnteredValue替换为用户输入的值(大吃一惊:)

10-07 15:34