Членство в Asp.net - Как явно сопоставить секретный ответ? - PullRequest
0 голосов
/ 04 февраля 2011

Мне нужно сопоставить ответ безопасности, введенный пользователем, и ответ безопасности, сохраненный в таблице aspnet_Membership. Я не хочу использовать метод resetpassword ("Securityanswer") для проверки пользователя.

Есть ли способ зашифровать введенный защитный ответ или расшифровать сохраненный защитный ответ.

Спасибо.

Ответы [ 3 ]

1 голос
/ 08 февраля 2011

/ Преобразовать введенные секунды в байтовый массив /

            Dim bytes As Byte() = Encoding.Unicode.GetBytes(secAns)

/ Это очень важно для преобразования вашего ключа в строку base 64 для получения оригинального скрытого пароля. Dim src As Byte() = Convert.FromBase64String(key) /*Concatenate sec ans and hash key*/ Dim dst As Byte() = New Byte(src.Length + (bytes.Length - 1)) {} Buffer.BlockCopy(src, 0, dst, 0, src.Length) Buffer.BlockCopy(bytes, 0, dst, src.Length, bytes.Length) /*Create algo object for SHA1*/ Dim algorithm As HashAlgorithm = HashAlgorithm.Create("SHA1") /*Compute hash value of concatenated ans and key*/ Dim inArray As Byte() = algorithm.ComputeHash(dst) /*Convert hashed ans back to string*/ Dim hashedAns As String = Convert.ToBase64String(inArray)

1 голос
/ 23 августа 2012

Я знаю, что это своего рода старое .... Но я не смог заставить работать ни один из опубликованных ответов на этот вопрос, но я выяснил методом проб и ошибок, что «ответ безопасности» хранится подобно как хранится пароль (если у вас установлен пароль для хэша). Я смог использовать ответ следующего поста о паролях для достижения цели вышеуказанного исходного вопроса: Членство в ASP.NET C # - Как сравнить существующий пароль / хэш

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

0 голосов
/ 04 февраля 2011

нет способа расшифровать секретный ответ, хранящийся в таблице членства. Вы можете хэшировать полученный ответ, а затем сравнить его с хешированными значениями, хранящимися в базе данных. для этого используйте FormsAuthentication.HashPasswordForStoringInConfigFile ..

...