Как дешифровать пароль от SQL-сервера?

Решено, app.config содержит несоответствие значений из настроек. setting, рестарт VS2013 решен, спрашивая, что делать с несоответствиями.

16
задан Cade Roux 8 October 2008 в 14:48
поделиться

5 ответов

Я полагаю, что pwdencrypt использует хеш, таким образом, Вы не можете действительно инвертировать хешированную строку - алгоритм разработан так, это невозможно.

, Если Вы проверяете пароль, что пользователь ввел обычную технику, должен хешировать его и затем сравнить его с хешированной версией в базе данных.

Это - то, как Вы могли проверить, что идентификатор пользователя ввел Замену таблицы

SELECT password_field FROM mytable WHERE password_field=pwdencrypt(userEnteredValue)

userEnteredValue с (большое удивление) значение что вводимый пользователь:)

17
ответ дан 30 November 2019 в 15:28
поделиться

Вы понимаете, что можно делать стержень для собственного назад в будущее. pwdencrypt () и pwdcompare () являются недокументированными функциями и не могут вести себя то же в будущих версиях SQL Server.

, Почему бы не хешировать пароль с помощью предсказуемого алгоритма, такого как SHA-2 или лучше прежде, чем поразить DB?

12
ответ дан 30 November 2019 в 15:28
поделиться

Вы не должны действительно быть паролями de-шифрования.

необходимо шифровать пароль, ввел приложение и сравнение против зашифрованного пароля от базы данных.

Редактирование - и если это вызвано тем, что о пароле забыли, затем установите механизм для создания нового пароля.

4
ответ дан 30 November 2019 в 15:28
поделиться

Вы не можете дешифровать этот пароль снова, но существует другой метод, названный "pwdcompare". Вот пример, как использовать его с синтаксисом SQL:

USE TEMPDB
GO
declare @hash varbinary (255)
CREATE TABLE tempdb..h (id_num int, hash varbinary (255))
SET @hash = pwdencrypt('123') -- encryption
INSERT INTO tempdb..h (id_num,hash) VALUES (1,@hash)
SET @hash = pwdencrypt('123')
INSERT INTO tempdb..h (id_num,hash) VALUES (2,@hash)
SELECT TOP 1 @hash = hash FROM tempdb..h WHERE id_num = 2
SELECT pwdcompare ('123', @hash) AS [Success of check] -- Comparison
SELECT * FROM tempdb..h
INSERT INTO tempdb..h (id_num,hash) 
VALUES (3,CONVERT(varbinary (255),
0x01002D60BA07FE612C8DE537DF3BFCFA49CD9968324481C1A8A8FE612C8DE537DF3BFCFA49CD9968324481C1A8A8))
SELECT TOP 1 @hash = hash FROM tempdb..h WHERE id_num = 3
SELECT pwdcompare ('123', @hash) AS [Success of check] -- Comparison
SELECT * FROM tempdb..h
DROP TABLE tempdb..h
GO
1
ответ дан 30 November 2019 в 15:28
поделиться

Быстрое Google указывает, что pwdencrypt () не детерминирован, и Ваш оператор выбирают pwdencrypt ('AAAA'), возвращает другое значение на моей установке!

См. также эту статью http://www.theregister.co.uk/2002/07/08/cracking_ms_sql_server_passwords/

1
ответ дан 30 November 2019 в 15:28
поделиться
Другие вопросы по тегам:

Похожие вопросы: