Дополнительно
Как расшифровать пароль от SQL-сервера?
У меня есть такой запрос в sql server 2000:
select pwdencrypt('AAAA')
который выводит зашифрованную строку 'AAAA':
0x0100CF465B7B12625EF019E157120D58DD46569AC7BF4118455D12625EF019E157120D58DD46569AC7BF4118455D
**Как я могу преобразовать (расшифровать) вывод из его происхождения (которое 'AAAA')?
16
3
Я полагаю, что pwdencrypt использует хэш, поэтому вы не сможете изменить хэшированную строку - алгоритм разработан таким образом, что это невозможно.
Если вы проверяете пароль, который ввел пользователь, обычная техника заключается в хэшировании пароля, а затем сравнении его с хэшированной версией в базе данных.
Вот как можно проверить введенный пользователем пароль в таблице
Замените userEnteredValue на (большой сюрприз) значение, которое ввел пользователь :)
Вы осознаете, что, возможно, вы делаете стержень для своей собственной спины на будущее. Функции pwdencrypt() и pwdcompare() являются недокументированными функциями и могут вести себя по-разному в будущих версиях SQL Server.
Почему бы не хэшировать пароль с помощью предсказуемого алгоритма, такого как SHA-2 или лучше, перед тем как попасть в БД?
Вы не можете расшифровать этот пароль снова, но есть другой метод под названием "pwdcompare". Вот пример его использования с помощью синтаксиса SQL: