All
Извините заранее - я новичок в большинстве тем ниже (SQL, ASP). Во всяком случае ...
У меня есть довольно простое веб-приложение, которое требует от пользователей входа в систему с именем пользователя и паролем.
Внешний интерфейс создает соленый SHA1-хэш пароля и публикует его (вместе с именем пользователя) на странице ASP.
Эта ASP-страница принимает данные, вызывает хранимую процедуру в базе данных SQL Server и передает имя пользователя и хешированный пароль; хранимая процедура записывает информацию в таблицу 'users'.
Тип столбца пароля в таблице - varbinary.
Насколько я могу судить, когда ASP получает пароль (password = Request.Form ("password")), это строка.
Я могу «обмануть» SQL Server для обработки его как varbinary, если я создаю запрос следующим образом:
query = "EXEC sp_save_user @ username = '" & username & "', @ password = 0x" & password
IOW - я добавляю "0x" к строке пароля.
Однако я читал, что лучше использовать параметризованный запрос:
Например: SET objParam = objCommand.CreateParameter ("@ пароль", 204, 1, 40, пароль)
Однако это не удается, поскольку параметр должен быть двоичным (204), а пароль - строка.
Итак, как мне преобразовать строку типа "4a5e6a8d521ed487b81c91e131cf27e8dae9b783" в двоичный файл в ASP?
Заранее большое спасибо!